ホームページ >バックエンド開発 >PHPチュートリアル >PHP と Selenium を使用して Web クローラー開発の最後のマイルを完了する方法

PHP と Selenium を使用して Web クローラー開発の最後のマイルを完了する方法

PHPz
PHPzオリジナル
2023-06-15 14:59:351571ブラウズ

Web クローラーは、ユーザーがインターネット上の Web ページにアクセスして必要な情報を抽出することにより、データを迅速に収集できるようにする自動プログラムです。大量のデータのニーズと分析において、クローラーはこれらのニーズを満たすための重要な手段の 1 つとなっています。ただし、クローラを効率的に導入するのは簡単ではありません。特に、クローラー対策メカニズム、JavaScript、動的レンダリングなどの問題が発生した場合は、それを実現するためにいくつかのツールを使用する必要があります。

その中でも、Seleniumはブラウザ上でユーザーの操作をシミュレートしてWebページを操作したり、データを抽出したりできるツールとしてよく使われています。 PHP は、強力なスケーラビリティ、容易なメンテナンス、低開始コストという利点を備えた古典的な開発言語です。この記事では、PHP と Selenium を使用して Web クローラー開発の「ラスト マイル」を乗り越える方法を詳しく紹介します。

準備作業

PHP と Selenium を使用して Web クローラーを開発する前に、いくつかの準備作業を行う必要があります。

  1. PHP と Selenium のインストール

PHP と Selenium がシステムにインストールされており、正しく実行できることを確認します。まだインストールされていない場合は、次の方法でインストールできます。

  • PHP のインストール: 最新の PHP バージョンを公式 Web サイト (https://www.php.net/downloads.php) からダウンロードし、インストール プログラムのプロンプトに従ってインストールできます。
  • Selenium のインストール: Selenium WebDriver の最新バージョンは、公式 Web サイト (https://www.selenium.dev/downloads/) からダウンロードできます。
  1. ブラウザ ドライバのインストールと構成

Selenium WebDriver はさまざまなブラウザを制御できますが、対応するブラウザ ドライバをインストールする必要があります。したがって、Selenium を使用する場合は、ブラウザ ドライバーをインストールして設定する必要があります。この記事では Chrome ブラウザを例に説明しますが、他のブラウザでもインストール方法は同様です。

  • Chrome ドライバーのダウンロード: 対応する Chrome ドライバー バージョンを公式 Web サイト (https://sites.google.com/a/chromium.org/chromedriver/downloads) からダウンロードできます。
  • Chrome ドライバーのパスを構成します。ダウンロードした Chrome ドライバーをフォルダーに解凍し、フォルダー内の chromedriver 実行可能ファイルへのフル パスをシステム環境変数に追加します。

上記の環境依存関係をインストールした後、PHP と Selenium を使用して Web クローラーの開発を開始できます。

Web クローラー開発に PHP と Selenium を使用する

  1. PHP ファイルを作成する

まず、test.php という名前の PHP ファイルを作成し、Selenium のファイルをインポートします。 PHP ライブラリ ファイル、つまり selenium-php library:

require_once('vendor/autoload.php');

  1. Webdriver インスタンスを開始します

WebDriver は Selenium の重要な部分であり、ブラウザを駆動し、ユーザーの動作をシミュレートするために使用されます。したがって、Selenium を使用して Web サイトをクロールする前に、PHP ファイルで WebDriver インスタンスを起動し、ブラウザーの種類とドライバーのパスを指定する必要があります。この記事では、Chrome ブラウザを例に挙げます:

use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;

$host = 'http://localhost:9515/';
$capabilities = DesiredCapabilities ::chrome();
$webdriver = RemoteWebDriver::create($host, $capabilities);

    #対象の Web ページにアクセスしてデータを取得します
  1. #起動時 WebDriver インスタンスを作成した後、それを使用してブラウザを制御し、ターゲット Web ページにアクセスできます。この記事では、Baidu 検索ページへのアクセスを例に説明します。

$webdriver->get("http://www.baidu.com");

Web ページにアクセスした後、これは、Web ページ データを取得するために Selenium API を通じて提供できます。たとえば、Web ページのタイトルを取得します:

$title = $webdriver->getTitle();

シミュレートされたユーザー操作の実行
  1. #Selenium 重要な機能は、クリック、入力、スクロール、その他の操作を含む、ブラウザーでのユーザー操作をシミュレートすることです。以下では、例として、検索ボックスにキーワードを入力し、検索ボタンをトリガーします。
use FacebookWebDriverWebDriverBy;

use FacebookWebDriverWebDriverKeys;

$input = $webdriver->findElement( WebDriverBy: :name('wd'));
$input->sendKeys('selenium');

$input->sendKeys(WebDriverKeys::ENTER);


#WebDriver インスタンスを閉じる

    Web サイトのクローリング タスクが完了したら、WebDriver インスタンスを閉じてリソースを解放する必要があります。
  1. $webdriver->quit();

PHP と Selenium を併用して Web クローラー開発を行うと、ブラウザを簡単に制御し、ユーザーの動作をシミュレートできます。特に複雑なクローラ対策メカニズムや動的レンダリングに遭遇した場合、PHP と Selenium を組み合わせて使用​​すると、開発効率が大幅に向上します。ただし、関連する規制に違反しないように注意する必要がある安全性と法的問題もいくつかあります。

以上がPHP と Selenium を使用して Web クローラー開発の最後のマイルを完了する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。