Итак, я хочу, чтобы мой компьютер выполнял определенные действия на веб-сайте каждые 30 минут в течение 2 дней подряд. Я хочу, чтобы мой компьютер публиковал что-то на сайте, а заголовок должен показывать время. Кто-нибудь знает программу, которая может это сделать?
Я использую Windows.
Вот варианты, которые я могу предложить (в произвольном порядке):
Селен . Это инструмент автоматизации для веб-браузеров. Обычно он используется разработчиками для запуска сценариев тестирования веб-сайтов, но может использоваться для любых целей, требующих повторяющихся действий на веб-сайте. вы бы написали сценарий, говорящий ему «щелкнуть это, ввести то и т. д.», и могли бы запускать его неоднократно. Он работает со всеми основными браузерами. Вам все равно понадобится отдельный инструмент, чтобы настроить его на регулярную работу.
Сахи . Аналогичен Селену. Возможно, проще в использовании, но не так широко поддерживается. Тем не менее, он по-прежнему работает во всех основных браузерах. Как и в случае с Selenium, вам все равно понадобится отдельный инструмент для планирования его запуска.
ФантомJS . Это немного отличается от других. Phantom — это «безголовый веб-браузер»; то есть это полнофункциональный веб-браузер, но без пользовательского интерфейса. Вы можете использовать его для навигации по страницам, но все взаимодействие с ним осуществляется с помощью сценариев, как для указания, что делать, так и для проверки полученных веб-страниц. Как и в случае с двумя другими вышеперечисленными инструментами, он часто используется для написания тестовых сценариев для веб-сайтов. Он значительно быстрее запускает свои скрипты, чем Selenium или Sahi, из-за отсутствия накладных расходов, связанных с загрузкой отдельного браузера и отсутствием необходимости отображать окно браузера на экране. Однако кривая обучения значительно круче, поэтому вам потребуется больше усилий, чтобы настроить ее и запустить. Как и в случае с другими, вам понадобится отдельный инструмент для его регулярной автоматизации.
WGet . В зависимости от ваших потребностей вам может не понадобиться ничего сложного из перечисленных выше инструментов. WGet — это очень простой инструмент, который не делает ничего, кроме веб-запроса. Если вам нужна простая автоматизация — например, просто загрузите определенную страницу, чтобы активировать событие на вашем сайте один раз в день — тогда вы можете достичь этого, просто загрузив страницу; вам не обязательно, чтобы браузер делал что-либо со страницей после ее загрузки. В этом случае WGet может быть лучшим вариантом, чем любой другой, просто потому, что он такой простой. Опять же, вам понадобится что-то еще, чтобы заставить его работать на регулярной основе.
Для всего вышеперечисленного, после того как вы написали сценарий, его регулярный запуск может быть достигнут с помощью планировщика заданий Windows, встроенного в Windows.
И последнее, что я хотел бы сказать: если действие, которое вы регулярно выполняете, является действием на вашем собственном веб-сайте, вам может быть лучше, чтобы оно выполнялось самим веб-сервером. В этом случае, предполагая, что ваш сервер работает под управлением Linux, вам нужно будет использовать задание cron для выполнения автоматизации, но вам не понадобятся какие-либо из вышеперечисленных инструментов, поскольку ваше задание cron может просто запустить код на вашем сайте напрямую. .
Поскольку вы сказали «веб-сайт», вы можете использовать свой браузер, чтобы выполнить эту работу. Хотя Selenium тоже можно использовать.
Я буду использовать браузер.
Отказ от ответственности : для этого требуется среднее знание Javascript.
Вот это ваши лучшие друзья, эксплуатируйте их: setInterval
, iframes
, MouseEvents
,KeyboardEvents
Вы заходите на целевой сайт, открываете консоль браузера и вводите скрипт (подробнее об этом позже).
Главное окно/вкладка браузера будет поддерживать работу вашего скрипта, а фреймы iframe будут действовать как песочница второго уровня для вашего скрипта, потому что запуск кликов на главной странице может перенаправить на какую-то другую страницу, что еще больше остановит ваш скрипт.
А затем используйте обычные селекторы и MouseEvents/KeyboardEvents, чтобы выполнить то, что вы хотите.
Пример:
Этот пример скрипта проголосует за первый ответ, опубликованный в самой последней теме на reddit.com/r/webdev.
Предупреждение: вы должны войти в Reddit
1. Откройте браузер (проверено на Chrome)
2. Перейдите на reddit.com/r/webdev.
3. Откройте консольCTRL + SHIFT + J
4. Вставьте следующий код и нажмите Enter (поясняется позже)
Вы можете уйти сейчас, просто убедитесь, что браузер продолжает работать.
Что творится??
Основными помощниками здесь являются setInterval
и iframes
. Первый поддерживает цикл, а второй используется для выполнения сценариев, а само окно используется для поддержания среды.
Установите время окончания скрипта
var endLoopAt = new Date('July 08, 2016 08:24:00');
Создайте изолированную среду, главное окно будет использоваться для продолжения работы скрипта.
var sandBoxedIframe = document.createElement("iframe");
sandBoxedIframe.onload = checkAndUpvote;
document.body.appendChild(sandBoxedIframe);
Используется для проверки того, совпадает ли новая самая последняя ссылка с проверенной во время последнего запуска.
var lastUpdatedFirstPostLink = "";
Остальная часть сценария использует селекторы элементов (вы можете использовать «проверить элемент», чтобы найти свой) и отправляет на них события.
Томас Веллер