ヤマムギ

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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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

 - AWS , ,

ad

ad

  関連記事

Amazon Location Service入門ワークショップ-ジオフェンス

関連記事 Amazon Location Service入門ワークショップの前提 …

Amazon Aurora Serverless 課金確認

Amazon Aurora Serverlessを使い始めてみましたの記事で書い …

ParquetフォーマットのデータにS3 Select SQLを実行する

RDSスナップショットのS3エクスポート結果確認で出力したデータが、S3にPar …

Amazon API GatewayのIAM認証の動作を確認しました

API GatewayのIAM認証は、IAMユーザーが実行できるように認証する、 …

Amazon S3バケットでMFA Deleteを有効にする

バージョニングが有効なバケットでバージョン削除でMFA Deleteを有効にして …

Well-Architected Tool レンズヴァージョンアップ

当ブログのWell-Architectedレビューを久しぶりにやろうと思い、We …

EC2 プレイスメントグループを試してみました

やったことないのでやってみたやつです。 プレイスメントグループの作成 まず、EC …

AWS CDKでクロススタックリファレンスをする

CloudFormationで複数のスタックで参照することがあります。 それをC …

AWSクイックスタートのActive Directory Domain Services on AWS

オンプレミスに見立てたActive Directory環境がほしかったので、AW …

Microsoft TeamsのOutgoing Webhooksを使ってAWS Lambda(Python), Amazon API Gatewayとbot

Microsoft Teamsの検証その2、Slackで実装しているbotも対応 …