ホームページ  >  記事  >  バックエンド開発  >  クロールを簡単にする: PHP と Selenium を使用した Web クローラーの開発

クロールを簡単にする: PHP と Selenium を使用した Web クローラーの開発

WBOY
WBOYオリジナル
2023-06-16 10:09:13762ブラウズ

Web クローラーとは何かを簡単に紹介します。 Web クローラーとは、Web ページの情報を一定の規則に従って自動的に取得し、インターネット上のデータを収集するプログラムです。インターネット時代では、データ取得の重要性がますます高まっており、Web クローラーも同様です。この記事では、PHP と Selenium を使用して、単純な Web クローラーを実装します。

1. クローラーの基本原理

クローラーの基本原理は、ブラウザーの動作をシミュレートし、サーバーにリクエストを送信し、返されたコンテンツを解析して有用な情報を抽出するプログラムを作成することです。データ。 Web ページの HTML ソース コードを分析して、取得したいコンテンツが配置されているタグまたは要素を取得し、これらのタグと要素のコンテンツをキャプチャするプログラムを作成できます。

2. 開発言語として PHP を選択する理由

PHP は人気のあるオープン ソースのサーバー スクリプト言語であり、コードがシンプルで学習しやすく、使いやすいため、よく使用されています。多くのウェブサイトで。 PHP の重要な機能は、さまざまなシステム プラットフォーム上で実行できることです。さらに、PHP はオブジェクト指向言語であるため、保守が容易であり、他の多くの言語と対話することができます。

3. 自動テスト ツールとして Selenium を選択する

Selenium は、人気のある Web アプリケーション テスト ツールです。ブラウザーで人間の動作をシミュレートし、Web サイトやアプリケーションの自動テストを含むさまざまなテスト タスクを実行できます。さらに、Selenium は PHP を含む複数のプログラミング言語をサポートしています。

4. インストールと設定環境

Seleniumを使用するにはブラウザドライバのインストールが必要で、ここではChromeブラウザを使用します。

1. Chrome ブラウザのインス​​トール

Chrome ブラウザをインストールするときは、Chrome ドライバがブラウザのバージョンに対応していることを確認する必要があります。

2. Chrome ドライバーをダウンロードする

プログラム内でブラウザの動作を制御するには、Chrome ドライバーを使用する必要があります。ドライバーをダウンロードするには、公式 Web サイトから対応するバージョンを直接ダウンロードし、解凍します。

3. 環境変数の設定

プログラムがドライバー ファイルを見つけられるように、Chrome ドライバーを環境変数に入力します。

4. Selenium をインストールします

Composer を使用してインストールします

composer require facebook/webdriver

5. コードを記述します

以下は、Baidu 検索ボックスのテキストをクロールするための簡単なサンプル コードです。ホームページ上:

<?php
require_once __DIR__ . '/vendor/autoload.php';
use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;

//指定驱动路径
$chromeOptions = new FacebookWebDriverChromeChromeOptions();
$chromeOptions->addArguments(['--headless']);
$chromeOptions->setBinary('/Applications/Google Chrome.app/Contents/MacOS/Google Chrome');
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(FacebookWebDriverChromeChromeOptions::CAPABILITY, $chromeOptions);

//连接Chrome并打开百度首页
$driver = RemoteWebDriver::create('http://localhost:9515', $capabilities);
$driver->get('http://www.baidu.com/');

//模拟搜索
$element = $driver->findElement(FacebookWebDriverWebDriverBy::id('kw'));
$element->sendKeys('hello world');
$element->submit();

//获取搜索结果中的相关内容
$results = $driver->findElements(FacebookWebDriverWebDriverBy::className('result-title'));
foreach ($results as $result) {
    echo $result->getText() . "
";
}

//关闭浏览器
$driver->quit();

上記のコードは、Selenium を使用して Chrome に接続し、Baidu ホームページを開き、検索ボックスに「hello world」と入力して、検索の送信をシミュレートします。最後に、検索結果のコンテンツをキャプチャして出力します。

6. 実装結果

上記のコードを使用すると、Baidu のホームページの検索ボックスのキーワードを取得できます。コードを変更して、より多くの Web サイトをクロールし、より多くのデータを取得できます。

Selenium は、Web インターフェイスのテストを自動化するための完璧なツールを多数提供していますが、Web クローリングにも使用できます。 PHP を使用してクローラ コードを作成し、Selenium を使用してブラウザの動作をシミュレートすると、クローラは大量のデータに簡単にアクセスして抽出できます。

7. 概要

この記事では、環境構成やコードの実装を含め、PHP と Selenium を使用して単純なクローラーを実装する方法を紹介します。これは、より大規模なプロジェクトに拡張して、より多くの機能を使用できる良い出発点です。 Web クローラーについてさらに詳しく知りたい場合は、クローラー関連の書籍を読んだり、他のクローラーのコード例から学ぶことができます。

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

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