ホームページ バックエンド開発 PHPチュートリアル 自動 Web クローラーの実践的なガイド: PHP と Selenium を使用した Web クローラーの構築

自動 Web クローラーの実践的なガイド: PHP と Selenium を使用した Web クローラーの構築

Jun 15, 2023 pm 04:44 PM
ウェブ クローラー オートメーション php+selenium

Web クローラーは、今日のインターネットの世界で最も重要なツールの 1 つとなっており、インターネット上のさまざまな Web サイトを自動的に閲覧し、人々が必要とする有用な情報を抽出できます。自動 Web クローラーのコア技術は、プログラミング言語とさまざまなツールを使用して、データを自動的に処理できるプログラムを構築することです。

近年、Selenium は自動 Web クローラーの分野で最も人気のあるツールの 1 つになりました。これは、クリック、スクロール、入力など、ユーザーがブラウザーで実行するさまざまな操作をシミュレートできるクロスブラウザー自動テスト ツールであり、Web ページからデータを取得することもできます。これにより、Selenium はプログラムが通常のユーザーと同じ方法でデータを取得できるため、自動 Web クローラーの構築に最適です。

この記事では、PHP と Selenium を使用して自動 Web クローラーを構築する方法を紹介します。この記事で紹介するクローラープログラムは、指定したWebサイトを自動的に閲覧し、すべての記事のタイトル、著者、公開日、記事リンクなどの関連情報を抽出し、最終的にCSVファイルに保存します。

始める前に、PHP、Selenium、WebDriver (ブラウザードライバーに相当) をインストールする必要があります。この記事の詳細は次のとおりです。

  1. 環境設定と基本構成

まず、ローカル環境に PHP をインストールする必要があります。 PHP7以上を推奨します。次に、Selenium をインストールするには、Composer を使用します。プロジェクトフォルダーにあるcomposerコマンドを使用してインストールし、インストールが成功したら、PHPプログラムの作成を開始できます。

  1. WebDriver と Selenium API の呼び出し

Selenium を使用して自動 Web クローラーを構築する前に、WebDriver を呼び出し、指定されたブラウザーと通信するための WebDriver インスタンスを作成する必要があります。 WebDriver はブラウザ ドライバ インターフェイスであり、ブラウザごとに異なる WebDriver が必要です。

PHP では、Selenium の PHP クライアント ライブラリを使用して WebDriver インスタンスを作成し、指定したブラウザの WebDriver にバインドできます。以下はサンプル コードです:

require_once 'vendor/autoload.php';
use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;

// 配置浏览器类型、路径、驱动、和端口
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $capabilities);
ログイン後にコピー
  1. ブラウザ セッションの確立とターゲット Web サイトを開く

ブラウザ セッションの作成には 1 行のコードのみが必要で、選択できるのは 1 行だけです。お気に入りのブラウザ (Firefox または Chrome)。

ここでは Chrome ブラウザを使用します。サンプル コードは次のとおりです。

// 使用Chrome浏览器打开目标网站
$driver->get('https://example.com');
ログイン後にコピー
  1. データの検索と抽出

対象の Web サイトを開いてページをロードした後、次の要素を見つけて取得する必要があります。必要なデータ。この例では、ターゲット Web サイト内のすべての記事のタイトル、著者、発行日、および記事リンクが検索されます。

次はサンプル コードです:

// 查找所有文章标题
$titles = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article h2 a'));

// 查找作者名字
$author_names = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article .author-name'));

// 查找发布日期
$release_dates = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article .release-date'));

// 查找文章链接
$links = $driver->findElements(FacebookWebDriverWebDriverBy::cssSelector('article h2 a'));
ログイン後にコピー

次は各記事のデータを検索して抽出するためのサンプル コードです:

$articles = array();

foreach ($titles as $key => $title) {
    // 提取标题
    $article_title = $title->getText();

    // 提取作者
    $article_author = $author_names[$key]->getText();

    // 提取发布日期
    $article_date = $release_dates[$key]->getText();

    // 提取文章链接
    $article_link = $links[$key]->getAttribute('href');

    // 添加文章到数组
    $articles[] = array(
        'title' => $article_title,
        'author' => $article_author,
        'date' => $article_date,
        'link' => $article_link
    );
}
ログイン後にコピー
  1. 結果は CSV に保存されますfile

最後のステップでは、抽出したデータを CSV ファイルに保存します。 PHP 組み込み関数 fputcsv() を使用して、データを CSV ファイルに保存できます。

以下はサンプル コードです:

// 文件流方式打开文件
$file = fopen('articles.csv', 'w');

// 表头
$header = array('Title', 'Author', 'Date', 'Link');

// 写入标题
fputcsv($file, $header);

// 写入文章数据
foreach ($articles as $article) {
    fputcsv($file, $article);
}

// 关闭文件流
fclose($file);
ログイン後にコピー

これでコンテンツの抽出とデータ処理が終了します。 CSV ファイル内のデータは、その後の分析や応用に使用できます。さらに、データを他のデータベースにインポートしてさらに処理することもできます。

要約すると、この記事では、PHP と Selenium を使用して自動 Web クローラーを構築する方法と、ターゲット Web サイトのデータを取得して処理し、CSV ファイルに保存する方法を学びました。この例は単なる単純なデモンストレーションであり、SEO、競合製品の分析など、Web サイトからデータを取得する必要があるさまざまなシナリオに適用できます。

以上が自動 Web クローラーの実践的なガイド: PHP と Selenium を使用した Web クローラーの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++ 開発におけるコードの冗長性の問題を解決する方法 C++ 開発におけるコードの冗長性の問題を解決する方法 Aug 22, 2023 pm 05:30 PM

C++ 開発におけるコードの冗長性の問題を解決する方法 コードの冗長性とは、プログラムを作成するときに、複数の場所に類似したコードまたは繰り返しのコードが存在することを意味します。この問題により、コードの保守と読み取りが困難になるだけでなく、コードのサイズと複雑さが増大します。 C++ 開発者にとって、コードの冗長性の問題を解決することは特に重要です。C++ は強力なプログラミング言語ですが、コードの重複が容易に発生する可能性があるためです。コードの冗長性の問題の根本原因は、不合理な設計とコーディングの習慣にあります。この問題を解決するには、次の側面から始めることができます: 関数とクラスを使用する: C

SpringBoot と SpringMVC の違いと比較を理解する SpringBoot と SpringMVC の違いと比較を理解する Dec 29, 2023 am 09:20 AM

SpringBoot と SpringMVC を比較し、その違いを理解する Java 開発の継続的な発展に伴い、Spring フレームワークは多くの開発者や企業にとって最初の選択肢となっています。 Spring エコシステムでは、SpringBoot と SpringMVC の 2 つの非常に重要なコンポーネントです。どちらも Spring フレームワークをベースにしていますが、機能や使用方法にいくつかの違いがあります。この記事では、SpringBoot と Spring の比較に焦点を当てます。

React と Python を使用して強力な Web クローラー アプリケーションを構築する方法 React と Python を使用して強力な Web クローラー アプリケーションを構築する方法 Sep 26, 2023 pm 01:04 PM

React と Python を使用して強力な Web クローラー アプリケーションを構築する方法 はじめに: Web クローラーは、インターネット経由で Web ページ データをクロールするために使用される自動プログラムです。インターネットの継続的な発展とデータの爆発的な増加に伴い、Web クローラーの人気はますます高まっています。この記事では、React と Python という 2 つの人気のあるテクノロジーを使用して、強力な Web クローラー アプリケーションを構築する方法を紹介します。フロントエンド フレームワークとしての React とクローラー エンジンとしての Python の利点を探り、具体的なコード例を示します。 1. のために

PHP 継続的インテグレーションにおける Jenkins: ビルドとデプロイの自動化のマスター PHP 継続的インテグレーションにおける Jenkins: ビルドとデプロイの自動化のマスター Feb 19, 2024 pm 06:51 PM

最新のソフトウェア開発では、コードの品質と開発効率を向上させるために継続的インテグレーション (CI) が重要な実践となっています。その中でも、Jenkins は成熟した強力なオープンソース CI ツールであり、特に PHP アプリケーションに適しています。次のコンテンツでは、Jenkins を使用して PHP 継続的インテグレーションを実装する方法を詳しく説明し、具体的なサンプル コードと詳細な手順を示します。 Jenkins のインストールと構成 まず、Jenkins をサーバーにインストールする必要があります。公式 Web サイトから最新バージョンをダウンロードしてインストールするだけです。インストールが完了したら、管理者アカウントの設定、プラグインのインストール、ジョブの設定など、いくつかの基本的な設定が必要です。新しいジョブの作成 Jenkins ダッシュボードで、[新しいジョブ] ボタンをクリックします。 「フリーズ」を選択します

Apple ショートカット コマンド オートメーションを削除する方法 Apple ショートカット コマンド オートメーションを削除する方法 Feb 20, 2024 pm 10:36 PM

Apple ショートカット オートメーションを削除する方法 Apple の新しい iOS13 システムのリリースにより、ユーザーはショートカット (Apple ショートカット) を使用してさまざまな携帯電話の操作をカスタマイズおよび自動化できるようになり、ユーザーの携帯電話エクスペリエンスが大幅に向上します。ただし、場合によっては、不要になったショートカットを削除する必要があるかもしれません。では、Apple ショートカット コマンド オートメーションを削除するにはどうすればよいでしょうか?方法 1: ショートカット アプリから削除する. iPhone または iPad で「ショートカット」アプリを開きます。下部のナビゲーションバーで選択します

Python スクリプトを使用して、Linux プラットフォームでタスクのスケジュール設定と自動化を実装します。 Python スクリプトを使用して、Linux プラットフォームでタスクのスケジュール設定と自動化を実装します。 Oct 05, 2023 am 10:51 AM

Python スクリプトを使用して Linux プラットフォームでタスクのスケジューリングと自動化を実装する 最新の情報技術環境では、タスクのスケジューリングと自動化はほとんどの企業にとって不可欠なツールとなっています。 Python は、シンプルで習得しやすく、機能が豊富なプログラミング言語であるため、Linux プラットフォーム上でタスクのスケジュール設定と自動化を実装するのに非常に便利で効率的です。 Python はタスク スケジューリング用のさまざまなライブラリを提供します。その中で最も一般的に使用され、強力なものは crontab です。 crontab は管理およびスケジュール設定システムです

ロボット工学と人工知能がサプライチェーンをどのように自動化できるか ロボット工学と人工知能がサプライチェーンをどのように自動化できるか Feb 05, 2024 pm 04:40 PM

自動化テクノロジーは、さまざまな業界、特にサプライチェーン分野で広く使用されています。現在では、サプライチェーン管理ソフトウェアの重要な部分となっています。今後、自動化技術のさらなる発展に伴い、サプライチェーン全体やサプライチェーン管理ソフトウェアは大きく変化することになります。これにより、物流と在庫管理の効率化が図られ、生産と配送のスピードと品質が向上し、ひいては企業の発展と競争力が促進されます。先進的なサプライチェーンの関係者は、新たな状況に対処する準備ができています。 CIO は、組織にとって最良の成果を確実に実現するために主導権を握る必要があり、サプライ チェーンにおけるロボット工学、人工知能、オートメーションの役割を理解することが重要です。サプライ チェーン オートメーションとは何ですか? サプライ チェーン オートメーションとは、サプライ チェーン活動への人の参加を削減または排除するための技術的手段の使用を指します。それはさまざまなものをカバーします

PHP 学習ノート: Web クローラーとデータ収集 PHP 学習ノート: Web クローラーとデータ収集 Oct 08, 2023 pm 12:04 PM

PHP 学習メモ: Web クローラーとデータ収集 はじめに: Web クローラーは、インターネットからデータを自動的にクロールするツールで、人間の行動をシミュレートし、Web ページを閲覧し、必要なデータを収集できます。 PHP は、人気のあるサーバーサイド スクリプト言語として、Web クローラーとデータ収集の分野でも重要な役割を果たしています。この記事では、PHP を使用して Web クローラーを作成する方法を説明し、実践的なコード例を示します。 1. Web クローラーの基本原則 Web クローラーの基本原則は、HTTP リクエストを送信し、サーバーの H レスポンスを受信して​​解析することです。

See all articles