Webスクレイピング環境の構築:Docker + Python + Scrapy + Selenium
お仕事で、人がブラウザを使ってwebページ上のコンテンツを操作するのではなく、 システムがwebサイトにアクセスして特定のアクションを起こす必要があったので、 そのシステムを作るための環境を構築しました。
https://github.com/kumahiyo/web-scraping
今回はローカルPCで開発できるようdockerを使いました。 python3.7を入れ、scrapyとseleniumをインストールしています。
scrapyはwebクローラーを作ることができるオープンソースのライブラリです。 seleniumは人がブラウザを操作する時と同じ環境を システムによってシュミレートするためのフレームワークです。 今回はscrapyと組み合わせて使うため、 scrapy-seleniumというミドルウェアをインストールしました。 これらを組み合わせて利用することで、人を介さずにブラウザ操作できるようになります。 使っているブラウザはfirefoxでこれもインストールしておきます。
また、ブラウザを操作する上でデータを扱う必要があったため、 行列操作のしやすいpandasやexcelファイルを扱える openpyxlといったライブラリもインストールしました。 pandasでもexcelファイルを扱えるのですが、 ファイル内のセル形式や結合状態などを維持したまま編集したりする場合は openpyxlが扱いやすくオススメです。
手軽にpythonを使ったwebスクレイピング環境が構築できるので、よければお使いください。
https://github.com/kumahiyo/web-scraping
※ webスクレイピングは、使用して問題ないかを確認してから使うようにしましょう。