Как я могу загрузить chromedriver, когда я хочу использовать селен в лямбда-функции aws? - PullRequest
0 голосов
/ 30 сентября 2019

Я хочу, чтобы Python Crawler работал локально. Но я хочу регулярно запускать crawler, поэтому я помещаю свой crawler в aws lambda.

Я скачал chromedriver и поместил его в каталог, где я могу использовать его на локальном сервере. Но в лямбде я не знаю, как установить путь и загрузить файл chromedriver.

Я пробовал абсолютный путь, но он не работал. Должен ли я загрузить хромедривер для лямбда-функции? Если да, как я могу это сделать?

мой код в localhost

    chrome_driver_path = "../chromedriver_win32/chromedriver.exe"
    driver = webdriver.Chrome(
        executable_path = chrome_driver_path,
        chrome_options=options
    )
    URL = "https://*****.co.kr"
    driver.get(URL)

Ответы [ 2 ]

1 голос
/ 30 сентября 2019

Таким образом, вы не можете запустить .exe на lambda, потому что это Linux, но вы МОЖЕТЕ запустить puppeteer, как описано выше, и использовать его для разбора HTML.

Установите кукловода, как указано выше (npm i puppeteer --save). Соберите все в единое целое. (Вы сжимаете весь свой код и node_modules в zip-файл) Развертывание в AWS. Вуаля.

Я НАСТОЯТЕЛЬНО рекомендую безсерверную инфраструктуру, поскольку она избавляет от трудностей при развертывании, вы можете получить ее здесь

Имейте в виду, если ваша работа по сканированию идетчтобы занять больше 15 минут, вам нужно запланировать это через cron на что-то вроде t2.micro, а не на лямбду, потому что время ожидания истекло.

0 голосов
/ 30 сентября 2019

Lambda не может запускать исполняемые файлы. Вы рассматривали хром без головы?

https://github.com/GoogleChrome/puppeteer

https://pptr.dev/#?product=Puppeteer&version=v1.20.0&show=outline

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...