#はじめに
過去にスクレイピング(PythonでBeautifulSoup)で収集した情報をブログに投稿するツールを作成したことがあります。
現在はスクレイピングのwebサービスもあり、スクレイピング導入における敷居も低くなったのかな?、という疑問からその代表格?であるscrape.doを実際に触った結果をまとめていきます。
##scrape.doのポイント
- 高度なカスタマイズを可能とするWebスクレイピングAPI
- SPAサイトもスクレイピング可能
- リクエストごとにIPアドレスをローテーション
- JavaScriptをレンダリングし、CAPTCHAを処理可能
- ターゲットWebサイトへの失敗したリクエストを自動的に再試行
- リクエストごとに2MBの応答サイズ制限があります
##scrape.doの無料枠
サインアップすると、毎月1000のAPIリクエストを含む無料枠がありますので、安心して試すことができます。
※無料枠利用において、クレジットカードの登録が不要なのはGood!
##アカウント登録
私はGoogleのアカウントで登録しました。
登録は簡単でGood!
※ログイン後の画面イメージ
#利用していきます!
##今回使用するツールなどのバージョン
- Windows 10 Pro:21H1
- vscode:1.61.2
- Docker:20.10.8
- Python: 3.8.12
##環境構築
詳細なソースはGitHub
イメージの作成
docker build -t scrape_do:1.0 /mnt/c/wsl/docker/dev/scrape.do-python-sample/.devcontainer --no-cache
コンテナの作成
docker run -v /mnt/c/wsl/docker/dev/scrape.do-python-sample:/opt/python/scrape_do --name scrape_do_01 -i -t scrape_do:1.0 /bin/bash
##スクレイピングAPIの実行
scrape.doのAPIレスポンスであるhtml情報を出力
scrape.doのAPIレスポンスのhtml情報からBeautifulSoupオブジェクトを作成して簡易的なスクレイピング結果を出力
##httpのサイトはアクセスできない?
ターゲットのURLが「http:XX」の場合、「502 Bad Gateway」となりました。
httpsのサイトのみが対象のようなので、httpのサイトにアクセスしないといけない要件の場合は残念ながら利用不可かなと。
※回避策あればコメントいただきたいです!
#利用した感想
利用しやすさ
細かい機能は有料オプションじゃないと利用できないものが多くて試せなかったのですが、APIの実行なので総じて利用は楽でした!
料金
スクレイピング処理の実行回数が少なく無料枠(1000回/月)内で利用可能あれば、scrape.doを利用したほうがIP自動変更もしてくれるのでオススメです。
逆に実行回数が多い場合は、bright dataを利用してIP自動変更をしつつリクエスト処理をしたほうが安くつくかなと。
しかし、Seleniumの代替となるJavascriptレンダリング機能は有料となるため、料金を意識するなら自前で作成したほうがよいかなと。
#今後
bright dataとScrapyを利用して、スクレイピングをしていきたいです。
まずは10分で理解する Scrapyを見て進めてみます。
#参考資料
参考とさせていただきました。ありがとうございます。
VSCodeでWSL2上のDockerコンテナ内コードをデバッグ
10分で理解する Beautiful Soup