crawlee - Crawlee — 信頼性の高いクローラーの構築に役立つ Node.js 用の Web スクレイピングおよびブラウザー自動化ライブラリー。速い。

(Crawlee—A web scraping and browser automation library for Node.js that helps you build reliable crawlers. Fast.)

Created at: 2016-08-27 02:35:03
Language: TypeScript
License: Apache-2.0

クロウリー
Web スクレイピングおよびブラウザー自動化ライブラリー

NPM最新バージョン ダウンロード 不和でチャット ビルド ステータス

ℹ️Crawlee はApify SDKの後継です。🎉TypeScriptで完全に書き直され、開発者エクスペリエンスが向上し、さらに強力なアンチブロッキング機能が追加されました。インターフェイスは Apify SDK とほぼ同じなので、アップグレードは簡単です。変更点については、アップグレード ガイドをお読みください。ℹ️

Crawlee はクロールとスクレイピングをエンドツーエンドでカバーし、信頼できるスクレイパーを構築するのに役立ちます。速い。

クローラーは人間のように見え、デフォルトの構成でも最新のボット保護のレーダーの下を飛行します. Crawlee は、プロジェクトのニーズに合わせて構成可能でありながら、Web をクロールしてリンクを探し、データをスクレイピングし、ディスクまたはクラウドに保存するためのツールを提供します。

Crawlee は

crawlee
NPM パッケージとして入手できます。

👉 Crawlee プロジェクトの Web サイトで完全なドキュメント、ガイド、サンプルを表示する 👈

インストール

詳細については、Crawlee ドキュメントの紹介チュートリアルを参照することをお勧めします。

Crawlee にはNode.js 16 以降が必要です

Crawlee CLI を使用

Crawlee を試す最も速い方法は、Crawlee CLIを使用してGetting started exampleを選択することです。CLI は、必要なすべての依存関係をインストールし、操作するボイラープレート コードを追加します。

npx crawlee create my-crawler
cd my-crawler
npm start

手動インストール

自分のプロジェクトにCrawlee を追加したい場合は、以下の例を試してください。を使用するため、Playwright

PlaywrightCrawler
もインストールする必要があります。インストール サイズを小さくするために、Crawlee にはバンドルされていません。

npm install crawlee playwright
import { PlaywrightCrawler, Dataset } from 'crawlee';

// PlaywrightCrawler crawls the web using a headless
// browser controlled by the Playwright library.
const crawler = new PlaywrightCrawler({
    // Use the requestHandler to process each of the crawled pages.
    async requestHandler({ request, page, enqueueLinks, log }) {
        const title = await page.title();
        log.info(`Title of ${request.loadedUrl} is '${title}'`);

        // Save results as JSON to ./storage/datasets/default
        await Dataset.pushData({ title, url: request.loadedUrl });

        // Extract links from the current page
        // and add them to the crawling queue.
        await enqueueLinks();
    },
    // Uncomment this option to see the browser window.
    // headless: false,
});

// Add first URL to the queue and start the crawl.
await crawler.run(['https://crawlee.dev']);

デフォルトでは、Crawlee

./storage
は現在の作業ディレクトリにデータを保存します。このディレクトリは、Crawlee 構成を介してオーバーライドできます。詳細については、設定ガイドリクエスト ストレージ、および結果ストレージを参照してください。

🛠特徴

  • HTTP およびヘッドレス ブラウザクロール用の単一インターフェイス
  • クロールする URL の永続的なキュー(幅と深さを優先)
  • 表形式のデータとファイルの両方のプラグ可能なストレージ
  • 利用可能なシステム リソースによる自動スケーリング
  • 統合されたプロキシ ローテーションとセッション管理
  • フックでカスタマイズ可能なライフサイクル
  • プロジェクトをブートストラップするCLI
  • 構成可能なルーティングエラー処理、および再試行
  • デプロイの準備ができたDockerfile
  • ジェネリックを使用してTypeScriptで記述

👾HTTP クロール

  • プロキシの場合でも、ゼロ設定の HTTP2 サポート
  • ブラウザに似たヘッダーの自動生成
  • ブラウザのTLS フィンガープリントの複製
  • 統合された高速HTML パーサー。チェリオとJSDOM
  • はい、JSON APIもスクレイピングできます

💻実際のブラウザのクロール

  • JavaScriptのレンダリングスクリーンショット
  • ヘッドレスヘッドフルのサポート
  • 人間に似た指紋のゼロ構成生成
  • 自動ブラウザ管理
  • PlaywrightPuppeteerを同じインターフェースで使用する
  • ChromeFirefoxWebkit、その他多数

Apify プラットフォームでの使用

Crawlee はオープンソースでどこでも動作しますが、Apify によって開発されいるため、Apify プラットフォームに簡単にセットアップしてクラウドで実行できます。Crawlee を Apify プラットフォームにデプロイする方法の詳細については、Apify SDK Web サイトにアクセスしてください。

サポート

Crawlee でバグや問題を見つけた場合は、GitHub で問題を送信してください。質問については、GitHub ディスカッションのStack Overflowで質問するか、 Discord サーバーに参加してください。

貢献する

あなたのコードへの貢献は大歓迎です。永遠に賞賛されます! 改善のアイデアがある場合は、Issue を送信するか、プル リクエストを作成してください。コントリビューションのガイドラインと行動規範については、CONTRIBUTING.mdを参照してください。

ライセンス

このプロジェクトは、Apache License 2.0 の下でライセンスされています。詳細については、LICENSE.mdファイルを参照してください。