web-dev-qa-db-ja.com

Amazon LambdaでSelenium Webdriverを実行するpython

Amazon LambdaでBeautifulSoupとSelenium Webdriverを実行したいのですが、私の実行環境はpython 3.6です。実行することは可能ですか?実行できる場合はどうすればよいですか?私の目的は、美しいスープを使用してWebページからデータをスクラップすることです4およびSelenium(JavaScriptによって動的に生成されたデータをスクラップする必要があるため)。

9
Sanu K yadav

はい、可能です。ヘッドレスChromeバイナリとchromedriverを、必要なすべてのPythonパッケージとともにパッケージ化する必要があります。また、SeleniumのChrome Webドライバーでいくつかのオプションを設定して、機能させる必要があります。

私は ステップバイステップチュートリアル を書いて、それをデプロイしようとする苛立たしい数週間を費やしました。

20
robroc

標準ライブラリの外部で依存関係を使用する場合は、 展開パッケージ を作成してLambdaにアップロードする必要があります。

BS4とLambdaの併用について write up があります。 Lambda内でSeleniumを使用しませんでしたが、Seleniumに関する豊富な経験があります。 Lambdaを使用してブラウザー内でコマンドを実行することはできません。 Selenium Server を実行して、リモートサーバーを立ち上げる必要があります。 Webスクレイピングを実行するマシンにSeleniumとWebdriverをダウンロードし、.jarファイル。Seleniumが通信するマシンのポートを開きます。

ブラウザを起動してこれらのページをスクレイピングするには、おそらくWindowsを実行しているマシンが必要であることを考えると、最後にラムダはおそらく必要ありません。

1