Ответы пользователя по тегу Автоматизация
  • Существует ли автокликер для RDP?

    @rPman
    Можно обмануть rdp сессию, что бы она считала что она не свернута, запустив ее в другой rdp сессии (можно к localhost подключиться), и вот уже эту вторую - отключать или сворачивать.
    Ответ написан
    6 комментариев
  • Какой локальный сервис/программа для сбора данных (текстовых) от пользователя?

    @rPman
    Свой веб сервер.

    Современные 'программисты' забыли, что html очень простой и удобный инструмент разметки форм, а приложение на php из 10 строчек позволит собрать данные в одном месте, даже без sql базы данных.
    90% работы - реализация аутентификации пользователей, и если к примеру вам хватит встроенной в вебсервер basic auth, то и подавно все просто.
    Ответ написан
    Комментировать
  • Как написать скрипт, который автоматически будет нажимать на кнопку покупки на сайте?

    @rPman
    Если
    У сайта есть апи

    Значит нужно прочитать документацию к нему с примерами или обратиться за помощью к его разработчику/владельцу.

    Стандартов на это нет, а значит и что то конкретное мало что сказать можно.
    Ответ написан
    Комментировать
  • Какие пакеты лучше использовать для написания программы?

    @rPman
    Управление удаленным браузером - selenium или самому использовать механим управления браузером по сети (у firefox это marionette, у хромиум кажется через --remote-debugging-port свой, собственно драйвера selemium их и используют, унифицируя)
    Ответ написан
  • Как заставить паралельно работать две разные вкладки google chrome?

    @rPman
    Как их можно заставить работать одновременно
    это фича браузера chromium, блокирует работу javascript фоновых окон либо замедляет их стократно. Чтобы заставить их работать в фоне, разработчик веб приложения должен использовать специальную технологии web workers.

    У firefox такой проблемы я не наблюдал, скрипты продолжали работать в свернутом браузере как ожидается.

    Единственный способ решить эту проблему универсально - это обмануть браузер чтобы он считало активным сразу несколько окон. Сделать это можно:
    - с помощью сервера терминалов, т.е. версия windows должна быть серверной либо на старых ревизиях win10 и до старых win7 - утилита rdpwrap).
    Можно запустить терминал под своим пользователем windows, и в каждом запускать браузер или любое другое приложение, которое ожидает быть в фокусе. Для работы приложения нужно будет держать открытыми сессии терминалов.
    Соответственно они будут продолжать работать, даже если их открыть в другой сессии терминалов (каскадно) и затем эту первую закрыть
    - использовать ibik aster для рабочих ревизий windows (включая самые свежие 11), позволяет создавать несколько рабочих терминалов (настоящих, не виртуальных как терминалы rdp) но для каждого потребуется свой монитор (можно обмануть с помощью заглушек в разъемы видеокарты и подключаться к терминалу с помощью локально запущенного vnc в каждом)
    Ответ написан
    4 комментария
  • Какой сервер выбрать для headless Chrome?

    @rPman
    chromium отъедает больше 500мб на типовую страницу, формально половина может уехать в своп и там и остаться, но при условии что инстанс браузера не перезапускается, но тогда нужно выбирать kvm vps-ки или выделенный сервер.

    я делал приложение на java (на самом деле пофиг на каком языке) в котором использовались компоненты WebEngine - от webkit, каждый инстанс потреблял порядка 150мб и работало неплохо, но формально это отдельный браузер и его useragent нестандартный... по уму это меняется. Что интересно, если подобрать версию WebKit по старее, то потребление оперативной памяти можно значительно сократить до считанных десятков мегабайт.

    Еще вариант, при использовании mono (как альтернатива .net framework), при использовании компоненты WebBrowser используется IE (не edge!) а в linux - firefox, как минимум это было 10 лет назад это работало на очень мелкой vps-ке.
    upd. облом, майкрософт и это сломало,
    spoiler
    кто-нибудь, пожалуйста, накажите эту компанию, куда не глянь, что не задень, все где она прошлась, сломано, искорежено, куплено и заброшено
    , поэтому тут тоже придется WebKit поключать
    Ответ написан
    Комментировать
  • Как автоматизировать получение URL файла, который браузер скачивает при задании моего URL?

    @rPman
    Для не программистов (или с минимальными знаниями) есть инструмент autoit, вместе с ним 7 лет назад шла мегаутилита au3record которая преобразовывала движения пользователя в программу, потом ее удалили из-за того что антивирусы считают эту программу вирусом

    смысл в том что полученную программу на auto script можно отредактировать, удалить лишние движения и добавить пару строк цикла чтобы зациклить действия или тупо вручную продублировать, вставив один и тот же код несколько раз.

    затем подготовить исходные данные (например список url) в каком-нибудь редакторе (например блокнот) и первыми действиями удалять первую строку в буфер (ctrl+x) и вставлять ее в браузер, в программе тогда достаточно будет вручную указать количество повторений цикла равное количеству строк.

    интервалы времени между повторениями взять с запасом
    Ответ написан
    Комментировать
  • Как выключить компьютер при пропадании подключения?

    @rPman
    Выключить компьютер можно командой:
    * windows - shutdown /s /t 0 (где 0 это время, через которое произойдет выключение, за это время можно отменить)
    * linux - shutdown -h 0

    Определить что связь с сервером прекратилась ... для этого нужно определить что именно это значит, нужно понимать что связь может оборваться по обычным причинам, например провайдер раз в сутки может обрывать все текущие подключения (помним знаменитый мем 'ни единого разрыва') и обычно программы автоматически восстанавливают соединения.

    Можно собирать статистику ping за какой то интервал времени, и если сервер не отвечает, можно считать что связь оборвалась. Готовую программу на выбранном языке тебе может кто то напишет,
    spoiler
    советую для windows не выбирать cmd/bat, да и на powershell это будет многословно. Если что в любой windows старше winxp в поставке идет c#/js#/vbs# компилятор, а если копнуть дальше то windows scripting host (это javascript/vbasic) и того со времен win95, поэтому лучше выбирать эти полноценные языки.
    Ответ написан
    Комментировать
  • Шаблонный код: Чем можно удобно генерировать код для автоматизации сборки по шаблону?

    @rPman
    Я использовал php для генерации кода, в т.ч. других языков программирования.
    Это очень простой, легко читаемый, поддерживаемый редакторами (раскраска, автодополнение,...) изначально создаваемый именно как генератор (текстов и html) на основе программируемого шаблона. Поддерживается всеми популярными ос и платформами (различия минимальны, в задачах шаблонизации не существенные)
    Ответ написан
    3 комментария
  • Как сделать так, чтобы автоматически выводилось изображение на экран по расписанию?

    @rPman
    bat-ник, запускается по расписанию в планировщике задач (чекбоксик прав администратора, чтобы он мог убивать процесс, так же включить чекбоксик интерактивный, чтобы процесс запускался под текущим пользователем) и состоит из двух строчек:
    taskkill /IM:имя_файла_просмотрщика_pdf.exe
    start "" /max "c:\путь_до_просморщика_pdf\имя_файла_просмотрщика_pdf.exe" "путь_до_файла_pdf.pdf"


    Если компьютер может использоваться другими пользователями (например это сервер терминалов и народ подключается по rdp) то завести специально для этой задачи отдельного пользователя windows, и прописать его в taskkill так /fi "username eq имя_пользователя_windows"

    p.s. при подключении к машине по rdp на сервере открывается новая сессия, не затрагивающая ту, что видна на подключенном мониторе (эта сессия зовется консоль), а на рабочих станциях эта консоль будет заблокирована.
    Для разболокировки консоли можно найти утилиты, гуглить remote unlock windows console
    Ответ написан
    Комментировать
  • Как автоматизировать обновление презентации power point из excel файла?

    @rPman
    с помощью скриптов Visual Basic Application (к сожалению макросы в PowerPaint недоступны и пример когда не сгенерируешь)
    первый же пример из гугла
    Ответ написан
    Комментировать
  • Возможно ли сделать скраппинг информации с сайта, на котором требуется авторизация с помощью расширения браузера (chrome)?

    @rPman
    Интерфейс расширений браузера это тоже html со своим dom, а значит с ним можно взаимодействовать.

    Уязвимые расширения используют не свою отдельную страницу с адресом chrome-extension:// а просто добавляют dom элементы на страницу, с такими тем более просто.

    средства автоматизации браузеров позволяют работать в т.ч. с расширениями, например selenium, гуглить extension automation selenium
    Ответ написан
    Комментировать
  • Как сделать автозапуск плейлиста в Spotify при включении ПК?

    @rPman
    Универсально автоматизировать нажатие кнопок можно с помощью autoit, скрипты примитивные, сложнее определить координаты в числах, куда нажимать а так скрипт будет из одной строчки: MouseClick(x,y) или несколько, если надо по менюшкам погулять (скорее всего между кликами добавить sleep)

    где то гуляла програмка для записи действий пользователя в виде программы для autoit но я ее найти никак что то не могу, очень было удобно, получить готовый код, подправить его если нужны циклы, тайминги слипами добавить...
    p.s. поройся в этой теме, там вроде нашли номер старой версии, в которой au3record еще шла в поставке
    Ответ написан
    Комментировать
  • Где найти бота/софт для NFT покупок на Binance?

    @rPman
    Уверен что разработка бота для торовли на площадке, где нет поддержки api (у бинанса нет), будет стоить 100$?
    это значит работать бот будет в браузере на площадке, где сегдня форма одна, завтра другая, после завтра вылетает выпадающее окошко поверх формы...

    p.s. Это игра в наперстки на площадке наперсточника, с завязанными глазами, когда наперсточник сначала забирает у тебя все деньги из кармана, а потом понемногу тебе их возвращает.. но не все
    Ответ написан
    Комментировать
  • Как автоматически создать нескольких изображений, наложив одно изображение на другие и трансформировав форму этого изображения в процессе?

    @rPman
    100% готовая библиотека есть, но не нагуглилась, так как задача не такая уж и сложная, ведь все можно сделать заранее.

    Первоначальное фото с маской делать нужно не с белым квадратом малевича, а специально подготовленным изображением на основе шахматной доски с мелкими цветными квадратами (одинаковые цвета не должны быть рядом, просто регулярный ресунок), чтобы слишком большие складки не помешали определить, какой это квадрат

    Полученное фото нужно сравнить с исходным изображением, и разница и будет теми изменениями, которые необходимо делать с целевыми изображениями, перед наложением. Каждый квадрат (область закрашенная одним цветом, чтобы не бодаться с тенями, делать фото нужно с хорошим освещением) на фото связываем с квадратом на изображении (поиск ближайшего того же цвета) а там либо искать центр либо пытаться задетектировать у квадратов углы и брать их за точки, для каждой точки строим вектор сдвига (dx,dy) на который нужно подправить соответствующий квадрат, затем сплайнами считаем эти вектора для каждой точки на изображении, полученную матрицу используем для правки всех фото.

    Ищи библиотеки, с эффектом warping/morphing, те что есть работают по ключевым точкам, как раз те что рассчитываешь по центрам квадратом в моем описании выше.
    Ответ написан
    1 комментарий
  • Как можно заработать запустив на своем сервере какие-нибудь скрипты?

    @rPman
    Даю идею для бизнеса ;)

    Парси алиэкспресс товары, продавай базу или услуги на ее основе (если я верно понимаю, там есть механизмы когда ты получаешь копеечку от продавца за то что ссылку кому то на них дал, цены при этом на товар привязываются)

    Как вариант сделай адекватный поиск, aliexpress на столько неадекватно ищет товары что считай что поиска у них нет (полагаю специально чтобы покупатели на худшие предложения тоже находились). Таких сервисов не много и они обычно ограничены определенными категориями товаров

    Чтобы это сделать, парси их базу, это не просто, так как они сопротивляются, к примеру их страничка в html занимает 600кб, и на ее анализе пасуют почти все существующие инструменты (из тысячи страниц с десяток могут выдавать странный результат) кроме наверное самого браузера. Структура меняется, ответы от сервера меняются если он заподозрит в сканировании и т.п.
    Ответ написан
    Комментировать
  • Как заархивировать папку по частям и отправить на почту(разную)?

    @rPman
    Отправка архивов на почту - худшая форма передачи данных, неужели нельзя по другому?

    Автоматизировать - значит написать приложение, вариантов 100500, бери делай, это не сложно
    Вот к примеру как отправить почту с вложениями с помощью PowerShell
    Ответ написан
    Комментировать
  • Что использовать для автоматизаций действий в браузере в параллельном или многопоточном режиме?

    @rPman
    c# а точнее .net в поставке имеет контрол WebBrowser, это полноценный браузер (раньше был интернет эксплорер, сейчас хз edge это или уже на webkit, если использовать mono то это будет firefox), с ним невероятно просто работать, хотя на практике вместо того чтобы ковыряться в DOM документа средствами .net лучше это делать внедрив javascript внутрь страницы.

    Выглядит работа примерно так, кидаете на форму контрол, на событие onload получаете доступ к документу webControl.document, дальше это уже браузерные dom методы. Совет, вместо добавления script на страницу лучше запускайте ее по таймеру .setInterval с нулевым интервалом, тогда скрипт будет запущен в контексте страницы а не какой то песочницу .net хотя последнее возможно подойдет для многопоточного доступа (осторожно контрол не предполагает многопоточность, но вы можете по ксперементировать, открыв несколько контролов и работая с ними из разных потоков, отпишитесь о результатах)

    Этот способ на порядок эффективнее силениум, так как отсутствует посредник, но все же ресурсы будут использоваться как на полноценный браузер (правда чуть меньше чем оригинальный)
    Ответ написан
    Комментировать
  • Как "организовать" скрипт действий на сайте?

    @rPman
    2 кардинально разных подхода:

    * вы изучаете, какие запросы совершает браузер, когда вы совершаете действия настранице (в браузере F12 закладка network, там можно на строке правую кнопку нажать и получить готовую команду утилиты curl к примеру), изучаете что из себя представляет запрос, выделяете параметры (что есть идентификатор сессии, что номер поста и т.п. - эмпирически и следуя логике как вы бы сами как програмист сделали) а затем повторяете все то же самое или только необходимое (например можно не грузить картинки стили и прочее) на любом языке програмирования, скорее всего загружая страницы придется их парсить, разбирать ссылки чтобы знать какие параметры подставлять в следующие запросы.

    * используя расширение к барузеру (например greasemonkey/tempermonkey), либо используя headless браузер типа silenium с подключением к вашему любимому языку или напрямую однократно добавив функции в консоли браузера (если сайт single page app без перезагрузки страницы) - полезно на время отладки, написать необходимый код прямо на javascript. Например чтобы кликнуть на ссылку достаточно написать $('css селектор до ссылки/кнопки').click()

    Первый подход самый эффективный и быстрый, не требует большой нагрузки на машину, с которой проходит автоматизация, если сервер не против, можно запускать сразу много и часто запросов и быстро собирать данные.

    Но если сервер противится таким технологиям то либо начинаете великую битву меча и щита, либо остается только второй подход. Код второго подхода обычно проще, анализировать сайт потребуется меньше, особенно это актуально при поддержке таких скриптова автоматизации, когда сайт обновляется или меняется дизайн. Второй подход на стороне сервера почти невозможно выявить, так как действия полностью идентичен действиям пользователя, особенно если кликать не сразу а по таймауту, симулировать скроллинг и движения мыши. Недостаток - очень высокая нагрузка на процессор и память машины с симулятором, ведь каждый парсер это полноценный браузер (особенно если вам надо использовать прокси одним инстансом вы не отделаетесь)
    Ответ написан
    1 комментарий
  • Возможно ли синхронизировать действия на ПК? Управлять несколькими ПК одновременно?

    @rPman
    Кажется у vnc я видел какую то прокси с таким функционалом, но очень очень давно и под linux.

    Не уверен что это в принципе работоспособная идея, так как разные машины даже с одним и тем же железом и набором софта могут реагировать по разному, пример - вы кликаете открыть программу, нажать на кнопку в ней, закрыть программу, на 10 машинах у вас все ок а на 11-ой программа открывалась чуть дольше и кнопка не успела нажаться, зато успешно закрылась.

    Если речь идет о демонстрации, правильный подход - запустить на всех машинах подключение в режиме только просмотр на одну машину, и уже на ней проводите все необходимые манипуляции.
    Ответ написан
    1 комментарий