LoginSignup
1
0

More than 1 year has passed since last update.

【スクレイピングツール】scrape.doの使い方

Last updated at Posted at 2021-10-22

はじめに

過去にスクレイピング(PythonでBeautifulSoup)で収集した情報をブログに投稿するツールを作成したことがあります。
現在はスクレイピングのwebサービスもあり、スクレイピング導入における敷居も低くなったのかな?、という疑問からその代表格?であるscrape.doを実際に触った結果をまとめていきます。

scrape.doのポイント

  • 高度なカスタマイズを可能とするWebスクレイピングAPI
  • SPAサイトもスクレイピング可能
  • リクエストごとにIPアドレスをローテーション
  • JavaScriptをレンダリングし、CAPTCHAを処理可能
  • ターゲットWebサイトへの失敗したリクエストを自動的に再試行
  • リクエストごとに2MBの応答サイズ制限があります

scrape.doの無料枠

サインアップすると、毎月1000のAPIリクエストを含む無料枠がありますので、安心して試すことができます。
※無料枠利用において、クレジットカードの登録が不要なのはGood!

アカウント登録

私はGoogleのアカウントで登録しました。
登録は簡単でGood!
※ログイン後の画面イメージ
image.png

利用していきます!

今回使用するツールなどのバージョン

  • 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情報を出力
image.png

scrape.doのAPIレスポンスのhtml情報からBeautifulSoupオブジェクトを作成して簡易的なスクレイピング結果を出力
image.png

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

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0