クローラー テクノロジーは、今日のデジタル時代において重要な役割を果たしています。そこで、自動化された Web クローラーの開発と実践が始まりました。 Web クローラーの中で、PHP は人気のあるプログラミング言語であり、Selenium は自動ブラウザー制御と Web ページ データ抽出に使用できる強力な自動テスト ツールです。次に、PHP と Selenium を使用して自動 Web クローラーの開発と実践を完了する方法を紹介します。
Selenium の使用を開始する前に、Selenium サーバーをローカル コンピュータに接続する必要があります。さらに、Selenium がブラウザの動作を制御できるように、WebDriver も必要です。 Chrome ブラウザの場合は、ChromeDriver をダウンロードしてシステム パスに設定する必要があります。具体的な手順は次のとおりです。
1.1 Selenium サーバーのダウンロード
公式 Web サイト (http://www.seleniumhq.org/download/) から Selenium サーバーをダウンロードして、Selenium をインストールできます。
1.2 ChromeDriver のダウンロード
同様に、ChromeDriver の公式 Web サイト (http://chromedriver.chromium.org/downloads) から ChromeDriver をダウンロードできます。
1.3 システム パスの設定
ダウンロードした ChromeDriver の場所をシステム PATH 変数に追加して、コマンド ラインで ChromeDriver を呼び出します。
2.1 PHP のダウンロードとインストール
PHP は、PHP の公式 Web サイト (http:// php.net/downloads .php) PHPをダウンロードしてインストールします。
2.2 必要な PHP 拡張機能のインストール
PHP が Selenium ライブラリと通信できるように、いくつかの PHP 拡張機能をインストールする必要があります。これらの拡張子には、php-curl および php-zip が含まれます。ターミナルに次のコマンドを入力するだけです:
sudo apt-get install php-curl sudo apt-get install php-zip
Selenium と PHP のインストールと構成が完了したら、それらを使用して次のことを開始できます。自動化された Web クローラーを開発します。
3.1 PHP スクリプトを作成する
PHP スクリプトを最初から作成することも、インターネットから利用可能なスクリプトを見つけることもできます。以下は、Selenium を使用して Google 検索にアクセスし、結果を抽出する PHP スクリプトの例です。
require_once('vendor/autoload.php'); use FacebookWebDriverRemoteRemoteWebDriver; use FacebookWebDriverWebDriverBy; // 设置WebDriver $host = 'http://localhost:4444/wd/hub'; $capabilities = array(WebDriverCapabilityType::BROWSER_NAME => 'chrome'); $driver = RemoteWebDriver::create($host, $capabilities); // 访问Google主页 $driver->get('https://www.google.com/'); // 通过ID查找搜索框并键入查询关键字 $searchBox = $driver->findElement(WebDriverBy::id('lst-ib')); $searchBox->sendKeys('PHP and Selenium automated web scraper'); $searchBox->submit(); // 通过CSS选择器查找查询结果,并将结果存储到数组中 $results = $driver->findElements(WebDriverBy::cssSelector('div.g')); foreach ($results as $result) { echo $result->getText() . " "; } // 关闭WebDriver $driver->quit();
この例では、findElement メソッドと findElements メソッドを使用して Web ページ要素 (つまり、Google 検索ボックスと検索結果) を検索しました。リスト)。また、sendKeys メソッドを使用して検索ボックスにテキストを入力し、submit メソッドを使用して検索フォームを送信しました。
自動化された Web クローラーを開発する場合、効率を向上させるいくつかのテクニックがあります。
4.1 正しいクラスを使用する
Selenium を使用する場合、ライブラリが提供する正しいクラスを使用して動作する必要があります。たとえば、ID 属性に基づいて要素を検索する場合、WebDriverBy::id を使用して By クラスを作成する必要があります。
4.2 ハードコーディングを避ける
ハードコーディングとは、コードに固定値または属性を直接組み込むことを指します。これは保守が難しいだけでなく、スクリプトの柔軟性も妨げます。したがって、構成可能な変数と情報をできるだけ多くスクリプト構成ファイルに抽出する必要があります。
4.3 例外処理
Web 上の Web ページのコンテンツは非常に変化しやすいため、Web ページからデータを抽出するときにさまざまな予期しない例外が発生する可能性があります。この状況の発生を減らすには、try-catch ブロックなどの例外処理をコードに実装する必要があります。
この記事では、PHP と Selenium を使用して自動 Web クローラーを開発する方法を紹介し、サンプル スクリプトを示しました。この組み合わせを実際に活用するためのヒントもいくつか紹介します。自動 Web クローリングは、効率を向上させ、より多くのデータや情報を取得するのに役立つ非常に便利なテクノロジーです。したがって、Web クローラー開発を行う場合、PHP と Selenium は不可欠なツールになります。
以上がPHP と Selenium を使用して自動 Web クローラーの開発と実践を完了する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。