インターネットの発展に伴い、Web ページから取得するデータはますます増えており、Web ページを手動で閲覧して情報を読み取るのとは異なり、クローラー技術を使用すると自動的にデータを取得できます。クローラー テクノロジーにおける Selenium は、Web ページ上で操作するユーザーをシミュレートし、Web ページ上のデータを取得できる自動テスト ツールです。この記事では、PHPとSeleniumを使ってクローラー機能を実装する方法を紹介します。
Selenium は、入力、クリック、スクロールなど、Web ページ上のすべてのユーザー操作をシミュレートし、Web ページ上のデータを取得できる自動テスト ツールです。 Selenium は、Chrome、Firefox、Edge などの複数のブラウザをサポートし、さまざまな言語を使用してテスト スクリプトを作成できます。クローラー テクノロジーでは、Selenium は Web ページを操作するユーザーをシミュレートし、Web ページからデータをクロールできます。
クローラ開発に Selenium を使用する前に、Chrome のブラウザ ドライバなど、Selenium をサポートするブラウザ ドライバをインストールする必要があります。 Selenium 公式 Web サイトから Chrome ドライバーの最新バージョンをダウンロードしてインストールできます。
次に、PHP と関連拡張機能 (php-webdriver など) をローカルにインストールする必要があります。以下に示すように、Composer を使用してインストールできます。
composer require php-webdriver/webdriver
クローラ開発に Selenium を使用する最初のステップは、Web ページを開くことです。データをクロールする必要があります。 Web ページのタイトルを取得する必要があるとします。次の手順に従います。
<?php require_once 'vendor/autoload.php'; use FacebookWebDriverRemoteDesiredCapabilities; use FacebookWebDriverRemoteRemoteWebDriver; // 启动Chrome浏览器 $capabilities = DesiredCapabilities::chrome(); $driver = RemoteWebDriver::create('http://localhost:9515', $capabilities); // 打开需要抓取数据的网页 $driver->get('https://www.example.com'); // 获取网页标题 $title = $driver->getTitle(); echo $title; // 关闭浏览器 $driver->quit();
コード分析:
require_once
を使用して次のことを行います。必要なクラス ライブラリ ドキュメント。 DesiredCapabilities
ブラウザ ドライバを作成し、Chrome ブラウザを指定します。 を使用します。Chrome ブラウザを起動し、Selenium サーバーに接続します。
メソッドを使用して、データをキャプチャする必要がある Web ページを開きます。
メソッドを使用して、Web ページのタイトルを取得します。
メソッドを使用して Chrome ブラウザを閉じます。
<?php require_once 'vendor/autoload.php'; use FacebookWebDriverRemoteDesiredCapabilities; use FacebookWebDriverRemoteRemoteWebDriver; use FacebookWebDriverWebDriverBy; // 启动Chrome浏览器 $capabilities = DesiredCapabilities::chrome(); $driver = RemoteWebDriver::create('http://localhost:9515', $capabilities); // 打开登录页面 $driver->get('https://www.example.com/login'); // 输入账号密码并登录 $accountInput = $driver->findElement(WebDriverBy::id('account')); $passwordInput = $driver->findElement(WebDriverBy::id('password')); $submitButton = $driver->findElement(WebDriverBy::id('submit')); $accountInput->sendKeys('your_username'); $passwordInput->sendKeys('your_password'); $submitButton->click(); // 等待登录成功并打开需要抓取数据的页面 $driver->wait(10)->until( WebDriverExpectedCondition::titleContains('Homepage') ); $driver->get('https://www.example.com/data'); // 获取数据 $data = $driver->findElement(WebDriverBy::cssSelector('.data'))->getText(); echo $data; // 关闭浏览器 $driver->quit();コード分析:
を使用して、必要なクラス ライブラリを導入します。ファイル。
ブラウザ ドライバを作成し、Chrome ブラウザを指定します。
sendKeys
メソッドを呼び出してアカウントのパスワードを入力します。
click
メソッドを呼び出してクリックしてログイン操作を完了します。
Homepage
が含まれるまで待機します。
getText
メソッドを使用してテキスト コンテンツを取得します。
取得したデータを出力します。
概要
以上がクローラーの開発と実装: PHP と Selenium の実践戦略の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。