Я изо всех сил пытался запустить Headless Chrome на AWS Lambda в течение нескольких дней. Он отлично работает на EC2, но когда я пробую его на Lambda, я просто получаю "Message: 'chromedriver' executable may have wrong permissions.
Модули упакованы с исполняемыми файлами chromedriver и headless-chromium в корневом каталоге zip-файла. Общий заархивированный файл, который я загружаю на S3, составляет 52 МБ, но извлеченный файл ниже предела в 250 МБ, поэтому я не думаю, что это проблема.
Python Zip Folder Структура изображения
from selenium import webdriver
def lambda_handler(event, context):
options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("--disable-gpu")
options.add_argument("--window-size=1280x1696")
options.add_argument("--disable-application-cache")
options.add_argument("--disable-infobars")
options.add_argument("--no-sandbox")
options.add_argument("--hide-scrollbars")
options.add_argument("--enable-logging")
options.add_argument("--log-level=0")
options.add_argument("--v=99")
options.add_argument("--single-process")
options.add_argument("--ignore-certificate-errors")
options.add_argument("--homedir=/tmp")
options.binary_location = "/var/task/headless-chromium"
driver = webdriver.Chrome("/var/task/chromedriver", chrome_options=options)
driver.get("https://www.google.co.uk")
title = driver.title
driver.close()
return title
if __name__ == "__main__":
title = lambda_handler(None, None)
print("title:", title)
В нескольких сообщениях в Интернете сообщалось о проблемах совместимости, которые могли вызывать проблемы, поэтому у меня есть конкретные исполняемые версии для Chrome и ChromeDriver из Интернета, где другие, похоже, используют предыдущий успех EC2 и другие средства.
СКАЧАТЬ ИСТОЧНИКИ ДЛЯ БЕЗ ГОЛОВНОГО ХРОМА И ХРОМЕДРИВЕРА
(стабильный) https://github.com/adieuadieu/serverless-chrome/releases/tag/v1.0.0-37
(https://sites.google.com/a/chromium.org/chromedriver/downloads) Загрузка недоступна, получена из источника ниже
https://chromedriver.storage.googleapis.com/index.html?path=2.37/
Может кто-нибудь помочь мне взломать это?