AWS lambdaでseleniumとchromedriverが使用できません

前提

aws lambdaでスクレイピングをしたいです。
参考サイトを見て作成したんですがchromedriverのパスがどうしても通りません。
他に理由があるのでしょうか。

コメ欄にあるパスも試したり、自分でパスを考えて配置したりしてますが無理でした。
レイヤーの「headless」
headless ← ここを保存
┗ python
┗ bin
┣ chromedriver
┗ headless-chromium
レイヤーの「selenium」
python ← ここを保存
┗ lib
┗ python3.7
┗ site-packages
┣ selenium
┣ selenium-3.141.0.dist-info
┣ urllib3
┗ urllib3-1.26.2.dist-info

実現したいこと

aws lambdaでスクレイピングしたい

発生している問題・エラーメッセージ

{ "errorMessage": "Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home\n", "errorType": "WebDriverException", "stackTrace": [ " File \"/var/task/lambda_function.py\", line 20, in lambda_handler\n browser = webdriver.Chrome(\n", " File \"/opt/python/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py\", line 70, in __init__\n super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], \"goog\",\n", " File \"/opt/python/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py\", line 89, in __init__\n self.service.start()\n", " File \"/opt/python/lib/python3.8/site-packages/selenium/webdriver/common/service.py\", line 81, in start\n raise WebDriverException(\n" ]

該当のソースコード

python

# python配下自動でimport from selenium import webdriver def lambda_handler(event, context): URL = "https://news.yahoo.co.jp/" options = webdriver.ChromeOptions() options.add_argument("--headless") options.add_argument("--disable-gpu") options.add_argument("--hide-scrollbars") options.add_argument("--single-process") options.add_argument("--ignore-certificate-errors") options.add_argument("--window-size=880x996") options.add_argument("--no-sandbox") options.add_argument("--homedir=/tmp") options.binary_location = "/opt/python/bin/headless-chromium" #ブラウザの定義 browser = webdriver.Chrome( "/opt/python/bin/chromedriver", options=options ) browser.get(URL) title = browser.title browser.close() return title

コメ欄を見て下記のパスも試しました。

python

options.binary_location = "/opt/python/bin/headless-chromium" → options.binary_location = "/opt/headless/python/bin/headless-chromium" #ブラウザの定義 browser = webdriver.Chrome( "/opt/python/bin/chromedriver", options=options )→ browser = webdriver.Chrome( "/opt/headless/python/bin/chromedriver", options=options )

試したこと

補足情報(FW/ツールのバージョンなど)

python3.8

コメントを投稿

0 コメント