質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

0回答

718閲覧

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

su_da221

総合スコア59

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2022/06/10 13:52

前提

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

1# python配下自動でimport 2from selenium import webdriver 3 4def lambda_handler(event, context): 5 6 URL = "https://news.yahoo.co.jp/" 7 8 options = webdriver.ChromeOptions() 9 options.add_argument("--headless") 10 options.add_argument("--disable-gpu") 11 options.add_argument("--hide-scrollbars") 12 options.add_argument("--single-process") 13 options.add_argument("--ignore-certificate-errors") 14 options.add_argument("--window-size=880x996") 15 options.add_argument("--no-sandbox") 16 options.add_argument("--homedir=/tmp") 17 options.binary_location = "/opt/python/bin/headless-chromium" 18 19 #ブラウザの定義 20 browser = webdriver.Chrome( 21 "/opt/python/bin/chromedriver", 22 options=options 23 ) 24 25 26 browser.get(URL) 27 title = browser.title 28 browser.close() 29 30 return title

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

python

1 options.binary_location = "/opt/python/bin/headless-chromium" 2 3→ options.binary_location = "/opt/headless/python/bin/headless-chromium" 4 5 #ブラウザの定義 6 browser = webdriver.Chrome( 7 "/opt/python/bin/chromedriver", 8 options=options 9 ) 10→ browser = webdriver.Chrome( 11 "/opt/headless/python/bin/chromedriver", 12 options=options 13 )

試したこと

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

python3.8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問