- CrawleeはWebスクレイピングとブラウザ自動化のためのPythonライブラリ
- 信頼できるクローラーを素早く構築するのに役立つ
- AI、LLM、RAG、GPT向けのデータ抽出に利用可能
- WebサイトからHTML、PDF、JPG、PNGなどのファイルをダウンロードできる
- BeautifulSoup、Playwright、純粋なHTTPと連携
- HeadfulモードとHeadlessモードの両方をサポート
- プロキシローテーション機能を提供
特徴
- HTTPおよびHeadlessブラウザクローリング向けの統合インターフェースを提供
- 利用可能なシステムリソースに基づいて自動並列クローリングを実行
- 型ヒントを使用するPythonで書かれており、IDEの自動補完機能を向上させ、バグを減らす
- エラー発生時またはブロックされた際の自動リトライ機能
- 統合されたプロキシローテーションおよびセッション管理機能
- 設定可能なリクエストルーティング - URLを適切なハンドラーへ直接渡す
- クロール対象URLの永続キュー
- 表形式データとファイルの両方に対応するプラグイン式ストレージ
- 強力なエラー処理機能
Scrapyとの違い
- Crawleeは標準でHeadlessブラウザクローリング(Playwright)をサポート
- シンプルで洗練されたインターフェース - 10行未満のコードでスクレイパーを設定可能
- 完全な型ヒント対応
- 標準のAsyncioをベースにしている
GN⁺の見解
- CrawleeはWebスクレイピングとクローリングのための強力なツールに見える。特にHeadlessブラウザベースのクローリングを標準でサポートしている点は大きな利点だと考えられる。
- シンプルなインターフェースと少ないコード量でクローラーを作成できるため、生産性が高そうだ。また、型ヒントを積極的に活用することで開発体験が向上し、エラー発生の可能性が低くなる。
- データ抽出のためにクローリングが必要なプロジェクトであれば、Crawleeは積極的に検討する価値がある。特にJavaScriptレンダリングが必要なWebページをクロールしなければならない場合、PlaywrightCrawlerが有用だと思われる。
- ただし、非常に大規模なクローリングが必要な場合やリアルタイム性が重要な場合には、分散クローリングをサポートするScrapyや他のツールを使う方が適している可能性がある。
- なお、クローリングポリシーや法的な問題についても十分に検討したうえで利用するのが望ましい。
2件のコメント
Node に対応しているのは知っていましたが、Python にも対応しているようですね。メンテナンスが必要なスクレイパーなら、フレームワークを真剣に検討してみるべきかもしれません(笑)
Hacker Newsのコメント
既存の機能を文書化することが重要だ。どれほど優れたWebスクレイピングプラットフォームでも、使い方をユーザーしか理解できないのでは意味がない
tiered_proxy_urls: list[list[str]] | None = Noneの意味は理解しづらいApify/Crawlee に感謝している。長年のNode.jsユーザーとして、このライブラリが最もうまく動作した
プロジェクト向けのスタックを探していて Crawlee を見つけた。Pythonライブラリが欲しかったが、Typescript で Crawlee を使って1週間でプロジェクトを完了した
Scrapy とどう違うのか気になる
他のライブラリから移行する理由は何なのか気になる。自前のクローラーを構築したが、特にユニークな点は見つからなかった
モダンなPythonコードは見栄えがいい
const data = await crawler.get_data()はJavascriptのように見える。アンダースコアが抜けているようだテストケースから、より多くのコードスニペットを文書の例として取り込むことを提案する。良い仕事だ
スクレイピングツールはいつでも歓迎だ。個人プロジェクトで使ってみるつもりだ。AIのおかげで、今のスクレイピングはゴールドラッシュ時代にシャベルを売るようなものだ