インターネット時代の到来により、インターネット上のデータをキャプチャすることがますます重要なタスクになりました。 Web フロントエンド開発の分野では、インタラクティブな一連の操作を完了するためにページからデータを取得する必要があることがよくありますが、効率を向上させるためにこの作業を自動化できます。
この記事では、PHP と Selenium を使用して自動データ収集とクローラ クローリングを行う方法を紹介します。
1. Selenium とは
Selenium は無料のオープンソースの自動テスト ツールで、主に Web アプリケーションの自動テストに使用され、実際のユーザーの動作をシミュレートし、自動対話を実現できます。 Selenium を使用して、クリックや入力などのブラウザ操作を自動化します。
2. Selenium のインストール
Selenium は Python 環境のライブラリです。最初に Selenium をインストールする必要があります。コマンドは次のとおりです:
pip install selenium
次に、次のことを行う必要があります。ブラウザ ドライバをダウンロードします。Chrome を例にすると、ドライバのダウンロード アドレスは次のとおりです: http://chromedriver.chromium.org/downloads ダウンロード後、ディレクトリに抽出し、そのディレクトリをシステム環境変数に追加します。
3. Selenium を使用してページ データを取得する
Selenium のインストールが完了したら、PHP を使用してページ データを自動的に取得するプログラムを作成できます。
次は簡単なサンプル コードです。プログラムは自動的に Chrome ブラウザを開き、ターゲット URL にアクセスし、ページが読み込まれるのを待ち、ターゲット データを取得して、コンソールに出力します。
In 上記のサンプル コードでは、Chrome ブラウザがクローラー ツールとして使用され、ヘッドレス モードは「--headless」パラメーターを通じて開始されます。ページにアクセスした後、プログラムは明示的待機を使用してページがロードされるのを待ち、ページ上のタイトル データを取得します。 4. クロール防止メカニズムに対処するにはどうすればよいですか? クローラーを通じて Web サイトのデータをクロールしたい場合、検証コードやユーザー エージェント検出などのクロール防止メカニズムに遭遇することがよくあります。現時点では、次の方法で対処できます。<?php require_once('vendor/autoload.php'); // 引入Selenium的PHP库 use FacebookWebDriverRemoteDesiredCapabilities; use FacebookWebDriverRemoteRemoteWebDriver; $host = 'http://localhost:9515'; // Chrome浏览器驱动程序地址 $capabilities = DesiredCapabilities::chrome(); $options = new FacebookWebDriverChromeChromeOptions(); $options->addArguments(['--headless']); // 启动无界面模式 $capabilities->setCapability(FacebookWebDriverChromeChromeOptions::CAPABILITY, $options); $driver = RemoteWebDriver::create($host, $capabilities); $driver->get('http://www.example.com'); // 要爬的页面地址 $driver->wait(5)->until( FacebookWebDriverWebDriverExpectedCondition::visibilityOfElementLocated( FacebookWebDriverWebDriverBy::tagName('h1') ) ); // 等待页面加载完成 $title = $driver->findElement(FacebookWebDriverWebDriverBy::tagName('h1'))->getText(); // 获取页面上的标题 echo $title; // 输出页面标题 $driver->quit(); // 退出浏览器驱动程序
以上がPHP と Selenium を使用してデータを自動的に収集し、クローラー クローリングを実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。