Maison  >  Article  >  développement back-end  >  Combat pratique sur les robots d'exploration : PHP analyse les données météorologiques

Combat pratique sur les robots d'exploration : PHP analyse les données météorologiques

WBOY
WBOYoriginal
2023-06-13 08:11:131064parcourir

Dans la société moderne, les informations météorologiques sont devenues un élément indispensable de la vie des gens. Qu'il s'agisse de projets de voyage, d'organisations de voyage ou de tenues du jour, vous devez vous fier à des prévisions météorologiques précises. Mais comment obtient-on les données météorologiques ? En fait, ces données de prévisions météorologiques sont fournies par certains sites Web spécialisés dans les données météorologiques, et ces données météorologiques peuvent être facilement capturées via des robots d'exploration. Cet article prendra comme exemple l'obtention de données de prévisions météorologiques d'une certaine ville pour présenter comment utiliser PHP pour écrire un robot permettant de capturer des données météorologiques.

1. Analyser le site Web cible

Avant d'explorer, vous devez d'abord analyser la structure du code source du site Web cible et comprendre l'emplacement des informations que vous devez obtenir dans le code source. Ici, nous prenons comme exemple « China Weather Network » (http://www.weather.com.cn/). Ce site Web fournit des prévisions météorologiques pour diverses villes. Ce que nous voulons capturer, ce sont les informations météorologiques pour une certaine ville.

Ouvrez le navigateur et visitez le site Web, entrez le nom de la ville cible, par exemple « Pékin », et cliquez sur Requête. À ce moment-là, les prévisions météorologiques de la ville pour aujourd'hui et pour les 7 prochains jours apparaîtront. Ce sont les informations que nous souhaitons capturer. En utilisant les outils de développement du navigateur pour analyser le code source de la page Web, vous pouvez voir que les informations de prévisions météorologiques sont contenues dans une balise div avec un identifiant « 7d ».

2. Écriture du programme de robot d'exploration

Après avoir analysé la structure du code source du site Web cible, nous pouvons commencer à écrire le programme de robot d'exploration. Tout d'abord, vous devez définir certaines constantes et variables pour stocker certaines informations de configuration, telles que la ville cible, l'URL des données météorologiques cibles, etc.

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

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

La prochaine étape est la logique de base du robot. Tout d'abord, vous devez utiliser la bibliothèque CURL pour faire une requête HTTP et obtenir la page de prévisions météorologiques de la ville cible, puis analyser la page HTML pour obtenir les données requises, et enfin enregistrer les données dans un fichier pour un traitement ultérieur.

// 初始化 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. Exécutez le programme d'exploration

Après avoir terminé l'écriture du programme d'exploration, vous pouvez exécuter le programme et obtenir des données météorologiques. Basculez vers le répertoire où se trouve le programme dans le terminal et entrez la commande suivante pour exécuter le programme.

php weather_spider.php

Le programme peut prendre un certain temps à s'exécuter, en fonction de la vitesse de chargement de la page de données météorologiques de la ville cible. Mais en observant la sortie de la console, nous pouvons voir que le programme s'est exécuté avec succès et que les informations sur les prévisions météorologiques ont été enregistrées dans le fichier.

4. Résumé

Grâce à l'introduction de cet article, nous avons appris à utiliser PHP pour écrire un programme de robot d'exploration Web afin d'obtenir des données du site Web cible. Bien que les robots d'exploration disposent de puissantes capacités d'acquisition de données, ils doivent également prêter attention à certaines questions éthiques et juridiques, telles que ne pas attaquer de manière malveillante les sites Web d'autrui, porter atteinte à la confidentialité des données d'autrui, etc. J'espère que tout le monde pourra respecter les réglementations légales et les normes éthiques en vigueur lors de l'utilisation de robots d'exploration Web, et faire un usage raisonnable de la technologie des robots d'exploration Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn