ホームページ  >  記事  >  バックエンド開発  >  PHP クローラーの練習: Baidu の検索結果をクロールする

PHP クローラーの練習: Baidu の検索結果をクロールする

WBOY
WBOYオリジナル
2023-06-13 12:39:261904ブラウズ

インターネットの発達により、私たちはさまざまな検索エンジンを通じてさまざまな情報を簡単に得ることができます。開発者にとって、検索エンジンからさまざまなデータをどのように取得するかは非常に重要なスキルです。今日は、PHP を使用して Baidu の検索結果をクロールするクローラーを作成する方法を学びます。

1. クローラーの動作原理

始める前に、まずクローラーの動作の基本原理を理解しましょう。

  1. まず、クローラーはサーバーにリクエストを送信して、Web サイトのコンテンツを要求します。
  2. サーバーはリクエストを受信すると、Web ページのコンテンツを返します。
  3. クローラーはコンテンツを受信すると、正規表現やその他の方法でコンテンツを解析し、必要なデータを抽出します。
  4. 最後に、クローラーはデータをデータベースまたはファイルに保存します。

2. Baidu 検索結果をクロールするプロセス

  1. リクエスト URL の構築

まず、リクエスト URL をベースに構築する必要があります。キーワードについて。 「PHP クローラー」の検索を例にとると、リクエスト URL は次のとおりです。 https://www.baidu.com/s?ie=UTF-8&wd=PHP クローラー

このうち、ie=UTF- 8 は、UTF-8 コーディング方式を使用することを意味します; wd= の後に検索キーワードが続きます。

  1. ページ コンテンツを取得するリクエストを送信する

PHP では、cURL ライブラリを使用して HTTP リクエストを送信できます。具体的な実装コードは次のとおりです。

<?php
function curl_request($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

$url = 'https://www.baidu.com/s?ie=UTF-8&wd=PHP%20%E7%88%AC%E8%99%AB';
$html = curl_request($url);
echo $html;
?>

ここでは、curl_request() 関数を使用してリクエストを送信し、ページのコンテンツを取得します。

  1. ページ コンテンツを解析する

次に、正規表現を使用してページ コンテンツを解析し、検索結果に必要なデータを抽出する必要があります。ブラウザの開発者ツールを使用してページのソース コードを表示し、必要なデータに対応する HTML 要素を見つけて、正規表現を使用して照合することができます。

たとえば、検索結果のタイトルとリンクを取得したい場合、ページのソース コードから次のコードを見つけることができます:

<h3 class="t"><a href="链接地址" target="_blank">标题</a></h3>

次の正規表現を使用して、 match:

$pattern = '/<h3 class="t"><a([sS]*?)href="(.*?)"[sS]*?>([sS]*?)</a></h3>/';
preg_match_all($pattern, $html, $matches);

ここでは、preg_match_all() 関数を使用して正規表現マッチングを実装し、マッチング結果を $matches 変数に保存します。

  1. 結果の出力

最後に、抽出した検索結果を出力して、必要なデータを取得します。具体的な実装コードは次のとおりです。

 $url) {
    echo ($key + 1) . '、' . $matches[3][$key] . '
'; } ?>

ここでは、foreach ループを使用して、一致したリンクとタイトルを走査し、結果をページに出力します。

3. 概要

この記事の導入部を通じて、PHP クローラーの基本原理と、PHP を使用して Baidu の検索結果をクロールする方法を理解しました。同時に、クローラの利用には法的、倫理的等の問題にも注意が必要であることも認識しており、関連法規を遵守し、違法・違法なクローリング操作を行わないことが必要です。

以上がPHP クローラーの練習: Baidu の検索結果をクロールするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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