ヤマムギ

growing hard days.

*

AWS Lambda(Python3)でSelenium + Chrome Headless + でwebスクレイピングする

      2018/09/04

インターネット上に公開されている情報をDynamoDBにつっこみたいだけなので、VPC内のLambdaからVPN経由で会社のシステムのAPIやデータベースとやりとりするよりも、VPC外のLambdaからwebスクレイピングをしてしまったほうがてっとり早いかなと。

以前まではPhantomJSを使ってましたがどうやら開発が止まるらしいので、今回からChrome Headlessを使ってみようということで少しエラーが出たりしたので備忘録として書いておきます。

とりあえずやってみる

ダウンロードして展開したheadless-chromiumとchromedriverをbinディレクトリを作って格納。

でSeleniumをダウンロードして、zipで固めてLambdaを作成して早速実行。

※ アクセスしたページのタイトルをリターンするだけのサンプルコードです。
※ urlは実際には何らかのURが入ります。

最新バージョンのドライバだと下記エラーが発生。

なので、こちら
AWS Lambda上のheadless chromeをPythonで動かす
を参考にさせていただき、以下からダウンロードして使用。

https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-37/stable-headless-chromium-amazonlinux-2017-03.zip

https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip

結果はエラーとなりましたので発生エラーと、解消のために追加したオプションを次に記載します。

エラー対応

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally

selenium.common.exceptions.WebDriverException: Message: unknown error: unable to discover open pages

エラーはこの2つだけでした。

他にもパラメータオプションは色々あるようですが、必要最低限のものだけ設定しておきます。

結果、次のようなコードになりました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

  関連記事

Amazon LinuxにRedmine 環境構築(エラーと対応をそのまま記載版)

Amazon Linuxにgit + Redmineの環境を構築してみます。 自 …

IAMユーザーにパスワード変更とMFA設定を許可する

組織管理のIAMで、ユーザーにMFAを使ってサインインしない限り操作は許可しない …

Amazon SES(Simple Email Service)でメール受信時のアクションでLambdaを実行して渡されるデータを見てみる

Amazon SESで受信したメールをS3に保存して、S3のトリガーでLambd …

Amazon Timestreamのサンプルデータベースを起動しました

マネジメントコンソールTimestreamにアクセスして、[データベースを作成] …

Amazon S3アクセスポイント経由からアクション可能なポリシー

S3アクセスポイントを使うことで、複雑で長いバケットポリシーを避け、アクセスポイ …

AWS DeepLens開封の儀

去年(2019年)7月にamazon.co.jpでDeepLens買えますやんっ …

AWS Client VPNを設定しました

ユーザーガイドのクライアント VPN の開始方法に沿ってやりました。 AWSクラ …

VPC新コンソールの日本語UIでルートテーブル編集時のエラー(2021/6/10)が発生したのでフィードバックを送った

VPCの新コンソールがリリースされていたので使って作業してましたところ、こんなエ …

S3バケットポリシーですべてDenyにしてしまったらルートユーザーの出番

特定のConditionsを指定して、それ以外はすべて拒否するS3バケットポリシ …

AWS Toolkit for Eclipseで「Error Message: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.」

AWS Toolkit for Eclipseをセットアップ(2021年版)の環 …