クローラーは、インターネットから情報を収集するために設計された自動プログラムです。ブラウザの動作をシミュレートし、Webページにアクセスし、ターゲットデータを抽出します。強力なサーバー側のスクリプト言語として、PHPを使用して効率的なCrawlerプログラムを作成することもできます。
クローラーの最初のステップは、HTTPリクエストを介して宛先Webページのコンテンツを取得することです。 PHPは、HTTPリクエストを送信するためのさまざまな方法を提供します。最も単純で最も一般的に使用されるのは、file_get_contents()関数です。
$url = "http://example.com";
$html = file_get_contents($url);
file_get_contents()関数を使用して、WebページのHTMLソースコードを直接取得し、変数$ htmlに保存します。
Webページソースコードを取得した後、HTMLを解析して必要な情報を抽出する必要があります。 PHPの組み込みDomdocumentクラスは、XMLおよびHTMLドキュメントの処理に最適です。
$dom = new DOMDocument();
@$dom->loadHTML($html);
ここでは、 loadhtml()メソッドを使用して、HTML文字列をDOMオブジェクトに変換して、後続のデータ操作を容易にします。 HTMLの解析中に警告メッセージを避けるために、 @を追加することに注意してください。
XPathは、XMLおよびHTMLドキュメントのノードを見つけるために使用されるクエリ言語です。 DomxPathクラスと組み合わせることで、Webページでターゲット要素を簡単に見つけて抽出できます。
$xpath = new DOMXPath($dom);
$elements = $xpath->query("//h1");
foreach ($elements as $element) {
echo $element->nodeValue;
}
上記のコードは、XPath式「// H1」を通じて配置されます
$url = "http://example.com";
$html = file_get_contents($url);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$elements = $xpath->query("//title");
if ($elements->length > 0) {
$title = $elements->item(0)->nodeValue;
echo $title;
} else {
echo "No title found";
}
このコードは最初にWebページソースコードを要求し、次にHTMLを解析し、最後にXpathを介してそれを見つけます