ホームページ >バックエンド開発 >PHPチュートリアル >実践的なクローラー戦闘: PHP による気象データのクロール

実践的なクローラー戦闘: PHP による気象データのクロール

WBOY
WBOYオリジナル
2023-06-13 08:11:131157ブラウズ

現代社会において、気象情報は人々の生活に欠かせないものとなっています。旅行計画、旅行の手配、今日の服装のマッチングなど、正確な天気予報に頼る必要があります。しかし、天気予報データはどのように取得されるのでしょうか?実際、これらの天気予報データは、いくつかの気象データ専門 Web サイトによって提供されており、これらの気象データは Web クローラーを通じて簡単に取得できます。この記事では、ある都市の天気予報データを取得する場合を例に、PHP を使用して気象データを取得するクローラーを作成する方法を紹介します。

1. 対象 Web サイトの分析

Web クローリングを実行する前に、まず対象 Web サイトのソース コード構造を分析し、取得する必要がある情報がサイト内のどこにあるかを理解する必要があります。ソースコード。ここでは「中国気象網」(http://www.weather.com.cn/)を例に挙げますが、このサイトではさまざまな都市の天気予報を提供していますが、ここで取得したいのはある都市の天気予報情報です。

ブラウザを開いて Web サイトにアクセスし、「北京」などの対象都市の名前を入力して、[クエリ] をクリックします。このとき、今日と今後7日間の市内の天気予報が表示されるので、これは把握しておきたい情報です。ブラウザの開発者ツールを使用して Web ページのソース コードを分析すると、ID が「7d」の div タグに天気予報情報が含まれていることがわかります。

2. クローラー プログラムの作成

ターゲット Web サイトのソース コード構造を分析した後、クローラー プログラムの作成を開始できます。まず、ターゲットの都市、ターゲットの気象データの URL などの構成情報を保存するために、いくつかの定数と変数を定義する必要があります。

// 目标城市名称
$city_name = '北京';

// 目标城市天气数据URL
$url = 'http://www.weather.com.cn/weather/101010100.shtml';

次のステップは、クローラーのコア ロジックです。まず、CURL ライブラリを使用して HTTP リクエストを作成し、対象の都市の天気予報ページを取得します。次に、HTML ページを解析して必要なデータを取得し、最後に後続の処理のためにデータをファイルに保存する必要があります。

// 初始化 CURL,获取天气预报页面
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$page_content = curl_exec($ch);

// 解析天气预报页面,获取需要的信息
$doc = new DOMDocument();
$doc->loadHTML($page_content);
$xpath = new DOMXPath($doc);

// 获取未来 7 天天气预报信息
$days = $xpath->query('//div[@id="7d"]//div[@class="con"]/ul/li');

// 遍历天气预报信息,保存到文件中
$file = fopen('weather.txt', 'a+');
foreach($days as $day) {
    $date = trim($day->getElementsByTagName('h1')->item(0)->nodeValue);
    $conditions = $day->getElementsByTagName('p')->item(0)->nodeValue;
    $min_temperature = $day->getElementsByTagName('span')->item(0)->nodeValue;
    $max_temperature = $day->getElementsByTagName('span')->item(1)->nodeValue;
    $line = sprintf("%s%s    %s    %s
", $city_name, $date, $min_temperature, $max_temperature);
    fwrite($file, $line);
}
fclose($file);

// 关闭 CURL
curl_close($ch);

3. クローラー プログラムの実行

クローラー プログラムの作成が完了したら、プログラムを実行して気象データを取得できます。ターミナルでプログラムが配置されているディレクトリに切り替え、次のコマンドを入力してプログラムを実行します。

php weather_spider.php

対象都市の気象データ ページの読み込み速度によっては、プログラムの実行に時間がかかる場合があります。しかし、コンソール出力を観察すると、プログラムが正常に実行され、天気予報情報がファイルに保存されたことがわかります。

4. 概要

この記事の導入部を通じて、PHP を使用して、ターゲット Web サイトからデータを取得する Web クローラー プログラムを作成する方法を学びました。 Web クローラーは強力なデータ取得機能を備えていますが、他の人の Web サイトを悪意を持って攻撃しないこと、他の人のデータ プライバシーを侵害しないことなど、いくつかの倫理的および法的問題にも注意を払う必要があります。誰もが Web クローラーを使用する際に関連する法規制と倫理基準を遵守し、Web クローラー テクノロジーを合理的に使用できることを願っています。

以上が実践的なクローラー戦闘: PHP による気象データのクロールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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