現在の位置: ホーム> 最新記事一覧> HTML/XMLをPHPで解析し、Webクローラーを作成するための完全なサンプルチュートリアル

HTML/XMLをPHPで解析し、Webクローラーを作成するための完全なサンプルチュートリアル

M66 2025-06-21

導入

Webクローラーは、インターネットからのデータをクロールするために使用される自動化ツールです。人気のあるサーバー側のスクリプト言語として、PHPには豊富なライブラリと機能があり、HTMLまたはXML形式でデータを効率的に解析および処理できます。この記事では、特定の例を使用して、WebページでPHPを使用してコンテンツを解析するWeb Crawlerを作成する方法を示します。

Webコンテンツを取得します

クローラーの最初のステップとして、ランディングページのコンテンツを取得する必要があります。 PHPでは、「Curl」関数を使用してこれを簡単に実現できます。 Webコンテンツを取得するためのサンプルコードは次のとおりです。

 
$url = "http://example.com"; // 宛先URLを設定します
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); // クロールURLをセットアップします
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 取得したコンテンツは文字列として返されます
$output = curl_exec($ch); // 埋め込むcurlセッションと返されたコンテンツを保存します
curl_close($ch);
echo $output; // クロールされたWebページのコンテンツを出力します

このコードでは、「curlopt_returntransfer」を「true」に設定することにより、取得したWebページコンテンツを文字列として保存します。次に、 `curl_exec`関数を使用してCurlセッションを実行し、結果を出力します。

HTMLコンテンツの解析

Webページのコンテンツを取得した後、次のステップは、必要なデータを抽出できるようにHTMLを解析することです。 PHPには、HTMLの解析に役立つ多くのライブラリがあり、最も一般的に使用されるライブラリの1つは単純なHTML DOMです。簡単なHTML DOMを使用してHTMLを解析する例を次に示します。

 
include('simple_html_dom.php'); // 紹介されたSimple HTML DOM図書館
$html = str_get_html($output); // WebページのコンテンツをロードしますSimple HTML DOMオブジェクト内
<p>// すべてのリンクと出力を見つけます<br>
foreach($html->find('a') as $element) {<br>
echo $element->href . "<br>";<br>
}</p>
<p>$html->clear(); // オブジェクトで占められているメモリをクリーンアップします<br>

このコードは、最初に「include」を介して単純なHTML DOMライブラリを導入し、取得したWebページコンテンツを単純なHTML DOMオブジェクトにロードします。次に、「Find」メソッドとCSSセレクターを使用してすべてのリンクを見つけ、最後に「Foreach」ループを介して各リンクの「HREF」プロパティを出力します。

XMLコンテンツを解析します

HTMLに加えて、PHPはXMLコンテンツを簡単に解析することもできます。 PHPは、XMLデータを解析するために、シンプルで使いやすいライブラリ-SimplexMLを提供します。 simplexmlを使用してXMLを解析するためのサンプルコードを次に示します。

 
$xml = simplexml_load_string($output); // 意思XMLストリングの読み込みSimpleXMLオブジェクト内
<p>// トラバーサルXML特定のフィールドの内容を出力します<br>
foreach($xml->book as $book) {<br>
echo "Title: " . $book->title . "<br>";<br>
echo "Author: " . $book->author . "<br>";<br>
echo "Year: " . $book->year . "<br><br>";<br>
}<br>

このコードでは、「simplexml_load_string」関数を介して、取得したxml文字列をsimplexmlオブジェクトにロードします。次に、「foreach」ループとオブジェクトのプロパティを介してXMLコンテンツを繰り返し、タイトル、著者、および出版年を出力します。

結論は

PHPの「Curl」機能と単純なHTML DOMやSimplexMLなどのさまざまな解析ライブラリを使用することにより、独自のWebクローラーを簡単に作成して、必要な情報をWebページまたはXMLデータから抽出できます。これにより、さまざまなデータアプリケーションの開発を強くサポートします。このチュートリアルを通じて、基本的なPHP Crawler開発スキルをマスターしてから、より複雑なデータクロールタスクに拡張できます。