インターネット情報の急速な成長に伴い、Web クローラーは非常に重要なツールになりました。 Web 上の情報を取得したり、Web サイト上のデータをクロールしたりすることができ、データの収集と分析の重要な部分を占めます。アンチクローラー技術の普及により、クローラーが禁止される危険にさらされています。
データをクロールする場合、Web サイト所有者は、アクセス頻度制限、確認コード、IP ブロックなどの設定など、さまざまな方法で Web クローラーに抵抗し、クローラー プログラムを制限したり妨害したりする可能性があります。もちろん、これらの戦略は 100% 効果的ではなく、多くの人が依然としてプロキシ サービスを使用してこれらの防御を回避できます。最近、Crawlera と呼ばれる新しいアンチクローラー ツールがクローラー業界に登場しました。これは、代理店の問題に焦点を当てたクローラー用のオープンソース フレームワークです。
Scrapy は、Python で書かれた人気のある Web クローラー フレームワークです。 Scrapy は Twisted フレームワークに基づいており、非同期処理を使用してクローラーの効率を向上させます。 Scrapy クローラーでは、Crawlera をプロキシ サーバーとして使用することで、クローラー対策の問題をうまく解決できます。この記事では、Scrapy で Crawlera プロキシ サーバーを使用して、特定の Web サイトからデータをクロールする方法について説明します。
まずはCrawleraアカウントを作成する必要があり、公式サイトからCrawleraアカウントを申請し、APIキーを取得します。次に、Scrapy のセットアップを開始できます。
settings.py ファイルに、次のコード スニペットを追加して、Crawlera ミドルウェアを有効にします:
CRAWLERA_ENABLED = True CRAWLERA_APIKEY = '<Your-API-KEY>' DOWNLOADER_MIDDLEWARES = { 'scrapy_crawlera.CrawleraMiddleware': 610 }
ここで、<Your-API-KEY>
は実際のものに置き換えてください。クロールラ API キー。ミドルウェアの実行順序が決定されるため、ミドルウェアの値に注意してください。 Scrapy ミドルウェアは番号順に実行されるため、Crawlera を他のミドルウェアの後に配置することが重要です。
これで、クローラーを実行して、Crawlera が正常に使用されているかどうかを確認できます。クローラーを開始するコマンドは次のとおりです。
scrapy crawl <spider-name>
クローラーが正常に開始されると、ターミナル ウィンドウに次の出力が表示されます。
2017-04-11 10:26:29 [scrapy.utils.log] INFO: Using Crawlera proxy <http://proxy.crawlera.com:8010>: tor-exit-crawlera
Crawlera プロキシ サーバーを使用する場合、クローラーは使用料を支払った。 Crawlera は、帯域幅課金とリクエスト課金という 2 つの課金方法を提供します。帯域幅の請求方法の場合、1 秒あたりの帯域幅の使用量によって支払い金額が決まります。リクエストの請求方法は、クローラー リクエストの合計数に基づいて行われます。実際のニーズに応じていずれかの方法を選択できます。
Crawlera には負荷分散機能と高可用性機能も備わっていることにも言及する価値があります。これらの機能は、複数のプロキシ サーバーを活用し、単一のプロキシ サーバーの障害を回避するのに役立ちます。 Crawlera プロキシ サーバーを使用するもう 1 つの利点は、Scrapy の非同期リクエスト/同時実行性が考慮されていることです。
つまり、Crawlera は Scrapy が Web サイトを正常にクロールするための重要な要素の 1 つであり、間違いなく非常に効果的なクローラー対策ソリューションです。 Crawlera を使用すると、時間とエネルギーを節約しながら安定してデータをクロールできます。
以上がScrapy クローラーで Crawlera を使用してクロール対策の問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。