インターネットの継続的な発展に伴い、データ クローリングは多くの人にとって不可欠なスキルになりました。 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 クローラーの構築を開始する前に、いくつかの基本概念を理解する必要があります。
WebDriver とはブラウザの動作を制御するために使用できる Selenium のコア コンポーネント。 WebDriver を使用すると、ブラウザを自動的に開閉し、ユーザーの操作動作をシミュレートできます。
Locator は、HTML ページ上の要素を見つけるために使用されます。 Selenium で一般的に使用される配置方法には、id、name、class、tagname、css、xpath などが含まれます。
アクションとは、クリック、テキストの入力、マウスのホバーなど、ブラウザーでの特定のユーザーのアクションを指します。
この例では、Selenium WebDriver 自動テスト ツールと PHP プログラミング言語を使用して Web クローラーを作成します。 Baidu (https://www.baidu.com) を例に挙げて、キーワードを検索し、検索結果のリンクをクロールします。
まず、Composer を使用して Selenium WebDriver と PHP WebDriver を PHP プロジェクトにインストールする必要があります。
PHP プロジェクトを作成する前に、Composer (https://getcomposer.org/) をインストールし、コマンドを使用して新しい PHP プロジェクトを作成する必要があります。ライン 。
プロジェクト フォルダーで、次のコマンドを使用して Selenium WebDriver と PHP WebDriver をインストールできます:
composer require facebook/webdriver
プロジェクト フォルダーに新しいファイル 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 キーを押して検索を送信します。その後、ページが読み込まれ、すべての検索結果へのリンクが取得されるまで待ちます。
最後に、ブラウザを閉じます。
コマンド ラインで次のコマンドを実行して、crawl.php を実行し、検索結果リンクをクロールします:
php roll 。 php
3. 概要
この記事の導入部分を通じて、PHP と Selenium を使用して単純な Web クローラーを構築する方法を学ぶことができます。 Selenium WebDriver を使用してユーザー操作をシミュレートできるため、Web クローリングの結果が向上します。実際のアプリケーションでは、必要に応じてさまざまな測位方法を採用し、操作動作をカスタマイズして、より正確かつ効率的なデータ クローリングを実現できます。
注: この例は学習の参考のみを目的としており、違法な目的での使用は禁止されています。
以上が高速で効率的な Web クローラーの作成: PHP と Selenium の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。