Альтернативы для выполнения сценария селена
У меня есть selenium
сценарий с python 3
, Мне нужно запускать его каждый день в 7 утра в течение 5 минут, но я не могу оставить свой ноутбук в режиме 24/7 только ради этого. Что будет самой простой / лучшей альтернативой?
Я проверил Lambda AWS
но я не могу установить chrome
(или безголовая версия) там и у меня нет опыта работы с серверами.
2 ответа
AWS Lambda - жизнеспособное решение для вашей цели, особенно если сценарий будет иметь небольшое время выполнения. Недавно они увеличили максимальное время выполнения до 15 минут, так что вы должны быть в порядке.
Получить безголовый Chrome в Lambda (в Python; там полно решений JS/node.js:)) можно - я сам успешно использовал этот проект в прошлом - https://github.com/21Buttons/pychromeless
Чтобы запланировать выполнение в желаемое время, вы можете использовать Amazon CloudWatch.
Чтобы выполнить скрипт Selenium с Python 3 без установки браузера, вы можете использовать GhostDriver.
GhostDriver
Ghost Driver - это реализация протокола Remote WebDriver с использованием PhantomJS в качестве внутреннего сервера. GhostDriver разработан как неотъемлемая часть самого PhantomJS с JavaScript API.
Дополнительные возможности WebDriver через GhostDriver
phantomjs.page.settings.SETTING = VALUE
phantomjs.page.customHeaders.HEADER = VALUE
phantomjs.page.whitelist
phantomjs.page.blacklist
unhandledPromptBehavior
loggingPrefs
phantomjs.binary.path
phantomjs.ghostdriver.path
phantomjs.cli.args
phantomjs.ghostdriver.cli.args
Основные преимущества GhostDriver
- Скриншот
- Автоматизация страницы
- Мониторинг сети
- Для запуска модульных тестов в командной строке
- В сочетании с QUnit для набора тестов
Пример
Блок кода:
from selenium import webdriver driver = webdriver.PhantomJS(executable_path='/path/to/phantomjs') driver.get('https://www.google.com/') print(driver.title) driver.quit()
Консольный вывод:
Google