こちらのサイトではDRUPAL10に関連する記事を掲載しています。
PHP Web スクレイピング ライブラリを使用してスクレイパーを構築すると、時間を節約し、成功率を高めることができます。 株価を監視するため、マーケティング チームに情報を提供するため、または e コマースの傾向を分析するためにデータを抽出する場合でも、それらは価値があります。
私たちは、JavaScript レンダリング、プロキシ サポート、およびその他の技術的要素に関して多くの PHP ライブラリをテストし、最も素晴らしいものを見つけました。 それらについて説明し、それぞれの簡単なコーディング例を見て、それらがどのように機能するかを確認します.
Web スクレイピングに利用可能なライブラリを比較
オンラインで入手できる PHP パッケージはたくさんありますが、信頼性が高く、実用的で使いやすいものはごくわずかです。 Webスクレイピングライブラリを利用すると Amazon、Instagram、GoogleなどのさまざまなタイプのWebサイトの自動収集が可能になります。
PHP Library | HTML Parsing | JavaScript Rendering | Proxy Support | Anti-bot | Good Documentation |
ZenRows | ○ | ○ | ○ | ○ | |
Simple HTML DOM | ○ | ○ | |||
cURL | ○ | ○ | |||
Goutte | ○ | ||||
Guzzle | ○ | ○ | ○ | ○ | |
Panther | ○ | ○ | ○ | ○ | |
DiDOM | ○ | ○ | |||
PHP-Webdriver | ○ | ○ | ○ | ○ | |
HTTPful | ○ | ||||
hQuery | ○ | ○ | ○ |
1.ZenRows
ZenRows はです 、スクレイピング中にブロックされるのを回避するのに役立つオールインワンの PHP スクレイピング ライブラリ。 これには、ローテーション プロキシ、ヘッドレス ブラウザ、JavaScript レンダリング、および Web ページからデータを取得することに真剣に取り組んでいる人にとって不可欠なその他の機能が含まれています。 無料の API キーを取得できます。
👍長所:
- 使いやすい PHP データ スクレイピング ライブラリ。
- ボットの検出を回避する低料金の高速でスマートなプロキシ サービス。
- 場所に基づく制限をバイパスできるジオターゲティング構成。
- アンチボットとCAPTCHAバイパス。
- 並行性に加えて、HTTP および HTTPS プロトコルをサポートします。
- Google や Amazon などの人気のある Web サイト用のスクレイパーを用意しました。
- JavaScript でレンダリングされた Web ページをサポートします。
👎 短所:
- プロキシ ブラウザ拡張機能は提供しません。
- HTML 解析用に別のライブラリが必要になります。
2. シンプルな HTML DOM
Simple HTML DOMを提供する、人気のある PHP DOM ライブラリです HTML 要素にアクセスして操作する簡単な方法ライブラリは、CSS セレクターを使用して 。 使い方は簡単で、単純な Web サイトからデータをスクレイピングできます。
👍長所:
- 基本的な知識しか必要としないため、HTML からデータを解析して抽出するのは簡単です。
- 使い慣れた PHP 構文を使用したシンプルで直感的な API。
- 軽量で効率的。
👎 短所:
- 他の PHP Web スクレイピング ライブラリほど強力でも柔軟でもありません。
- 新しい HTML 機能と標準をサポートしていない可能性があります。
- 複雑な、または非常にフォーマットされた HTML ページの解析には適していません。
3.カール
cURL は、HTTP、HTTPS、FTP などのさまざまなプロトコルをサポートする PHP クロール ライブラリです。 HTTP リクエストを作成するように設計されています が、Web スクレイピング ライブラリとして使用できます。
👍長所:
- HTTP 要求の高度な制御と柔軟性。
- プロキシ、SSL/TLS、認証、Cookie など、幅広い機能をサポートしています。
👎 短所:
- 低レベルのインターフェースを備えているため、使いにくい場合があります。
- 自動再試行やエラー処理など、多くの組み込みの便利な機能は提供されません。
- 属性、クラス、または識別子に基づいて要素を見つける方法はありません。
- HTML を解析できません。
4.Goutte
Goutteは PHP Web スクレイパー ライブラリおよび HTTP クライアントであり、 HTTP、HTTPS、FTP などのさまざまなプロトコルをサポートする Web サイトを簡単にスクレイピングしたり、HTML および XML 応答からデータを抽出したりできます。 Goutte は DomCrawler コンポーネントを使用して、Web ページからデータを迅速かつ効果的にクロールします。
👍長所:
- 使いやすい。
- HTML ドキュメントからデータを抽出するための便利な DOM スタイルのインターフェイスを提供します。
👎 短所:
- 他の PHP スクレイピング ライブラリほど柔軟ではありません。
- JavaScript を多用する Web サイトや大量のデータの処理など、より高度な Web スクレイピング シナリオには適さない場合があります。
- これは Web スクレイピングと HTML 解析専用に設計されているため、他の種類の HTTP タスクやユース ケースには適していない可能性があります。
- よく整理されていないドキュメント。
5.Guzzle
Guzzleする PHP Web スクレイピング ライブラリです は、オンライン サービスとのインターフェースや HTTP クエリの送信を簡単に。 PHP ストリーム ラッパーを使用して HTTP 要求を送信します。
Guzzle は、API の入力と出力を定義するためのサービス記述、API 呼び出しが正しく形成されていることを検証するためのパラメーター検証、API エラーを処理するためのエラー処理など、堅牢な Web サービス クライアントを作成するために必要なツールを含むフレームワークです。
👍長所:
- HTTP 要求を送信し、応答を処理するためのシンプルで使いやすいインターフェース。
- 並列リクエスト、キャッシング、ミドルウェア、およびエラー処理をサポートしています。
- プラグインとイベント サブスクライバーを使用して拡張およびカスタマイズできます。
👎 短所:
- それは急な学習曲線を持っています。
- プロジェクトの複雑さを増す可能性のある多数の依存関係があります。
6.Panthr
Panther はです 、さまざまなソースからのデータにアクセスして操作するための使いやすいインターフェイスを提供するヘッドレス PHP パッケージ。 PC 上の既存のブラウザーをヘッドレス ブラウザーとして使用するため、新しいソフトウェアをインストールする必要がありません。
Panther PHP Web スクレイピング ライブラリはヘッドレスでうまく機能するため、動的サイトと非動的サイトをスクレイピングできます。
👍長所:
- 複数の Web ブラウザーで Web スクレイピング プロセスとリード生成を自動化できます。
- フォームへの入力、ボタンのクリック、要素の抽出など、Web ページとやり取りするための豊富な機能セットを提供します。
- 十分に文書化され、積極的に維持されており、大規模で支援的なコミュニティがあります。
👎 短所:
- CAPTCHA や IP ブロックなど、特定の種類のスクレイピング対策をバイパスできない場合があります。
7. DiDOM
DiDOM パッケージはおよびドキュメント ジェネレーターです シンプルで軽量な HTML パーサー、 PHP 用の 。 HTML ドキュメントと要素を作成および操作するための流暢なインターフェイスを提供します。
一部の DiDOM 機能には、XPath 式のサポート、クリーンで使いやすい API、カスタム コールバックのサポート、およびスクレイピング プロセスを微調整するための幅広いオプションが含まれます。 オープンソースであり、MIT ライセンスの下でリリースされています。
👍長所:
- 使いやすい PHP Web スクレイピング ライブラリ。
- シンプルで直感的な API。
- HTML ページからデータを解析して抽出することができます。
- 軽量で効率的。
👎 短所:
- 他の PHP スクレーパー ライブラリほど柔軟ではありません。
- 複雑な、または非常にフォーマットされた HTML ページの解析には適していません。
8. Php-Webdriver
Php-webdriver はWebDriver プロトコルのクライアントを提供する PHP のスクレイピング パッケージです 、PHPスクリプトから Web ブラウザーを制御できる。 このフレームワークは、Web ブラウザーを自動化するためのツールである Selenium で使用するように設計されています。
php-webdriver を使用すると、フォームへの入力、ボタンのクリック、Web サイトのさまざまなページへの移動などのタスクを自動化するスクリプトを作成できます。
👍長所:
- 開始するのに必要な構成が最小限であるため、セットアップと使用が簡単です。
- 他の Symfony コンポーネントやライブラリとうまく統合できます。
- 動的サイトを実行するためのヘッドレス ブラウザーを提供します。
👎 短所:
- パッケージとその依存関係のインストール、Selenium の実装、Web ドライバーの実行など、いくつかのセットアップと構成が必要です。
- バックグラウンドで Web ブラウザーを実行するため、リソースを大量に消費する可能性があります。
- ボットから保護するために複雑な JavaScript や CAPTCHA を使用するサイトなど、特定の種類の Web スクレイピングには適さない場合があります。
9.HTTPful
HTTPfulを目的とした、シンプルで連鎖可能で読み取り可能な PHP ライブラリです は、簡単にHTTP リクエストを送信できるようにすること。 それらを構築するためのクリーンなインターフェースを提供します。 GET
, POST
, PUT
, DELETE
と HEAD
であり、カスタム HTTP メソッドの送信にも使用できます。
👍長所:
- 扱いやすい。
- 複雑な HTTP リクエストを作成するためのクリーンで連鎖可能なメソッドとインターフェース。
- cURL とソケットを使用してリクエストを送信できるため、リクエストを柔軟に作成できます。
- このパッケージは、応答を XML、JSON、またはプレーン テキストとして解析するため、さまざまな種類のデータを簡単に操作できます。
- マルチパート フォーム データを送信するためのヘルパー メソッドを提供します。
👎 短所:
- PHP 用の他の HTTP ライブラリほど機能が豊富ではありません。 たとえば、非同期リクエストや高度な認証方法はサポートされていません。
- 他のいくつかのライブラリほどよく維持されていません。 最新のリリースは 2020 年で、プロジェクトは非アクティブのようです。
10.hQuery
hQuery はます 、HTML ドキュメントの解析と操作に使用され。 これは jQuery API に基づいているため、jQuery に慣れている場合は hQuery を簡単に使用できるはずです。 この Web スクレイピング ライブラリは、DOM パーサーを使用して HTML を解析し、ドキュメントをナビゲートおよび操作するためのシンプルな jQuery のようなインターフェイスを提供します。
hQuery を使用して、ドキュメント内の要素を検索し、それらの属性またはコンテンツを変更し、その他の一般的なタスクを実行できます。
👍長所:
- 特に jQuery に精通している場合は、使いやすい PHP Web スクレイピング ライブラリ。
- HTML ドキュメントをナビゲートおよび操作するための優れたインターフェイス
👎 短所:
- 特に非常に大きな HTML ドキュメントの場合、他のオプションほど効率的またはパフォーマンス的ではない場合があります。
さいごに
Web スクレイピング用の最も一般的な PHP ライブラリは、Simple HTML DOM です。 HTML を解析するためのシンプルで効率的なライブラリです。
PHPでかなり凝ったスプレイピングを行いたいとき、ZenRows は役に立ちます。ブロックされないようにするための最適な PHP Web スクレイピング ライブラリです。 これは、ローテーション プロキシやヘッドレス ブラウザから CAPTCHA まで、すべてのアンチボット バイパスを処理できるためです。
筆者のオススメはGUZZLEです。CMSの一つDrupalにも標準で使用されておりとても使いやすいライブラリーの一つです。
この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。