高速で効率的な Web クローラーの作成: PHP と Selenium の例

WBOY
リリース: 2023-06-15 16:16:01
オリジナル
1520 人が閲覧しました

インターネットの継続的な発展に伴い、データ クローリングは多くの人にとって不可欠なスキルになりました。 Web クローラーは、データ クローリングのための重要なツールの 1 つです。

Web クローラーは、Web サイトに自動的にアクセスし、コンテンツを取得し、ページを分析し、必要なデータを抽出します。その中でも、Selenium は、実際のユーザー操作をシミュレートできる優れたネットワーク自動テスト ツールであり、Web クローラーの構築に非常に役立ちます。

この記事では、PHP と Selenium を使用して高速かつ効率的な Web クローラーを作成する方法を紹介します。その前に、いくつかの基本的な知識を理解する必要があります。

1. インストール環境

開始する前に、PHP と Selenium をインストールする必要があります。

1. PHP のインストール

Windows 環境では、XAMPP または WAMP ソフトウェア パッケージをダウンロードしてインストールでき、Mac ユーザーは MAMP ソフトウェア パッケージをインストールできます。

Linux 環境では、コマンド ラインを使用して PHP をインストールできます。たとえば、Ubuntu システムでは、次のコマンドを使用してインストールできます:

sudo apt-get install php7.0

PHP をインストールするときは、php-curl などの必要な拡張機能がインストールされていることを確認する必要があることに注意してください。次のコマンドを実行して、拡張機能がインストールされているかどうかを確認できます:

php -m | grepcurl

curl 拡張機能がない場合は、手動でインストールする必要があります。

2. Selenium のインストール

Selenium をインストールする前に、Java ランタイム環境 (JRE) をインストールする必要があります。

Selenium Server Standalone Edition は、Selenium の公式 Web サイト (https://www.selenium.dev/downloads/) からダウンロードできます。

次のコマンドを使用して Selenium サーバーを起動できます:

java -jar selenium-server-standalone-3.xx.x.jar

2. Selenium を使用します。および PHP を使用してネットワーク クローラーを構築します。

Web クローラーの構築を開始する前に、いくつかの基本概念を理解する必要があります。

  1. WebDriver

WebDriver とはブラウザの動作を制御するために使用できる Selenium のコア コンポーネント。 WebDriver を使用すると、ブラウザを自動的に開閉し、ユーザーの操作動作をシミュレートできます。

  1. Locator

Locator は、HTML ページ上の要素を見つけるために使用されます。 Selenium で一般的に使用される配置方法には、id、name、class、tagname、css、xpath などが含まれます。

  1. アクション

アクションとは、クリック、テキストの入力、マウスのホバーなど、ブラウザーでの特定のユーザーのアクションを指します。

この例では、Selenium WebDriver 自動テスト ツールと PHP プログラミング言語を使用して Web クローラーを作成します。 Baidu (https://www.baidu.com) を例に挙げて、キーワードを検索し、検索結果のリンクをクロールします。

まず、Composer を使用して Selenium WebDriver と PHP WebDriver を PHP プロジェクトにインストールする必要があります。

  1. Composer の構成

PHP プロジェクトを作成する前に、Composer (https://getcomposer.org/) をインストールし、コマンドを使用して新しい PHP プロジェクトを作成する必要があります。ライン 。

プロジェクト フォルダーで、次のコマンドを使用して Selenium WebDriver と PHP WebDriver をインストールできます:

composer require facebook/webdriver

  1. コードの作成

プロジェクト フォルダーに新しいファイル roll.php を作成し、コードを次のように編集します。

<?php
require_once('vendor/autoload.php');

use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;
use FacebookWebDriverWebDriverBy;
use FacebookWebDriverWebDriverKeys;

// 设置WebDriver
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities, 5000);

// 打开百度
$driver->get('https://www.baidu.com');

// 搜索关键字
$search_box = $driver->findElement(WebDriverBy::id('kw'));
$search_box->sendKeys('Selenium');
$search_box->sendKeys(WebDriverKeys::ENTER);

// 等待页面加载完成
sleep(5);

// 抓取搜索结果链接
$elements = $driver->findElements(WebDriverBy::xpath('//div/h3/a'));
foreach ($elements as $element) {
    echo $element->getAttribute('href')."
";
}

// 关闭浏览器
$driver->quit();
?>
ログイン後にコピー

まず、使用するブラウザーを含む Web ドライバーをセットアップする必要があります (ここでは Chrome ブラウザーを使用します) ) と WebDriver サービスのアドレス。

次に、WebDriver を使用して Baidu ホームページを開きます。 ID で Baidu 検索ボックスを見つけ、キーワード「Selenium」を入力して Enter キーを押して検索を送信します。その後、ページが読み込まれ、すべての検索結果へのリンクが取得されるまで待ちます。

最後に、ブラウザを閉じます。

  1. コードの実行

コマンド ラインで次のコマンドを実行して、crawl.php を実行し、検索結果リンクをクロールします:

php roll 。 php

3. 概要

この記事の導入部分を通じて、PHP と Selenium を使用して単純な Web クローラーを構築する方法を学ぶことができます。 Selenium WebDriver を使用してユーザー操作をシミュレートできるため、Web クローリングの結果が向上します。実際のアプリケーションでは、必要に応じてさまざまな測位方法を採用し、操作動作をカスタマイズして、より正確かつ効率的なデータ クローリングを実現できます。

注: この例は学習の参考のみを目的としており、違法な目的での使用は禁止されています。

以上が高速で効率的な Web クローラーの作成: PHP と Selenium の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート