Maison >développement back-end >tutoriel php >Comment explorer les informations de location de Lianjia avec PHP

Comment explorer les informations de location de Lianjia avec PHP

PHPz
PHPzoriginal
2023-06-13 15:43:571216parcourir

À l'heure actuelle, alors que la demande de location d'une maison continue d'augmenter, l'émergence de divers sites Web d'informations immobilières, tels que Lianjia.com, 58.com, etc., s'est également développée rapidement. Pour les locataires, il est très important d’obtenir rapidement des informations sur la location. Dans ce cas, écrire un robot PHP pour explorer les informations de location de Lianjia est une solution efficace et pratique.

Cet article présentera une méthode PHP simple et facile à comprendre pour explorer les informations de location de Lianjia, afin que chacun puisse rapidement obtenir et intégrer les informations requises pour mieux trouver les informations de location qui lui conviennent.

1. Explorer le code source du site Web

Tout d'abord, pour le robot d'exploration, le plus important est d'obtenir le code source de la page Web cible. Par conséquent, nous devons utiliser la fonction cURL de PHP pour obtenir le code source de la page d'accueil de Lianjia Rental. Le code spécifique est le suivant :

$url = "https://sz.lianjia.com/zufang/"; // 链家租房首页网址
$ch = curl_init();  //初始化curl
curl_setopt($ch, CURLOPT_URL, $url); //设置爬取网页url
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不直接输出网页内容
$data = curl_exec($ch);//执行curl
curl_close($ch);
echo $data;//输出网页源代码

Le code ci-dessus utilise la fonction curl_init() pour initialiser curl. La fonction curl_setopt() définit l'URL de la page Web cible qui doit être obtenue et ne génère pas directement le contenu de la page Web, mais le stocke dans la variable $data. Utilisez ensuite la fonction curl_exec() pour exécuter curl et obtenir le code source de la page Web. Enfin, utilisez la fonction curl_close() pour fermer curl.

2. Analyser le code source de la page Web

Après avoir obtenu avec succès le code source de la page d'accueil de location de Lianjia, nous devons l'analyser pour trouver les informations de location requises. Lors de l'analyse, des expressions régulières doivent être utilisées pour correspondre aux informations requises.

Dans le code source de la page d'accueil de location de Lianjia, nous pouvons constater que les informations de location sont contenues dans des divs avec la classe "content__list--item", et chaque information de location est un div indépendant, nous pouvons donc utiliser des expressions régulières pour les faire correspondre. divisions. L'expression régulière spécifique est la suivante :

$preg = '/<div class="content__list--item".*?>.*?<div class="content__list--item--main">.*?<span class="content__list--item-price"><em>(.*?)</em>元/月</span>.*?<a.*?>(.*?)</a>.*?<span class="content__list--item--des">(.*?)</span>.*?<i>(.*?)</i>.*?</div>.*?</div>/si';
//匹配div,获取每个信息的价格、标题、描述、地区

Dans l'expression régulière ci-dessus, nous faisons correspondre la balise div contenant des informations de location et utilisons des expressions régulières spécifiques pour faire correspondre d'autres balises div contenant le prix, le titre, la description et les informations ou éléments de région. Parmi eux, le modificateur de mode si est utilisé pour faciliter la correspondance de plusieurs lignes de texte.

3. Analyser le code source de la page Web

Après avoir utilisé des expressions régulières pour faire correspondre les divs où se trouvent toutes les informations de location, nous devons analyser et analyser davantage les informations spécifiques contenues dans chaque information de location, telles que le loyer, l'adresse, etc. Ici, nous pouvons utiliser la classe DOMDocument de PHP pour manipuler les balises HTML.

Le code spécifique pour utiliser la classe DOMDocument pour analyser les balises HTML est le suivant :

$dom = new DOMDocument();
$dom->loadHTML($data);
$domxpath = new DOMXPath($dom);
$element = $domxpath->query('//div[@class="content__list--item"]');
foreach($element as $el){
    //在这里做具体解析操作
}

Dans le code ci-dessus, nous utilisons d'abord la classe DOMDocument pour charger le code source de la page Web obtenu dans le DOM, et utilisons la classe DOMXPath pour effectuer des requêtes XPath sur le DOM. Ensuite, utilisez la fonction query() pour interroger les éléments div où se trouvent toutes les informations de location, et utilisez la fonction foreach() pour parcourir les éléments div où se trouvent chaque information de location.

4. Extraire les informations requises

Après avoir parcouru le div où se trouvent chaque information de location, nous devons également utiliser des expressions régulières pour extraire les informations requises, telles que le prix, l'adresse, etc. Le code spécifique est le suivant :

//提取价格
$price = $domxpath->query('.//span[@class="content__list--item-price"]/em',$el)->item(0)->nodeValue;
//提取标题
$title = $domxpath->query('.//a',$el)->item(0)->nodeValue;
//提取描述
$desc = $domxpath->query('.//span[@class="content__list--item--des"]',$el)->item(0)->nodeValue;
//提取地区
$region = $domxpath->query('.//i',$el)->item(0)->nodeValue;

Dans le code ci-dessus, nous utilisons la fonction query() pour interroger les nœuds d'élément HTML des informations requises à partir de l'élément div où se trouvent chaque information de location ; sélectionnez le nœud listant le premier élément de l'élément, puis utilisez l'attribut nodeValue pour obtenir le contenu textuel de cet élément.

5. Intégrer les informations requises

Enfin, nous intégrons toutes les informations requises dans un tableau associatif.

$info = ['price'=>$price,
         'title'=>$title,
         'desc'=>$desc,
         'region'=>$region];

Ensuite, nous ajoutons les informations intégrées à un tableau et générons l'intégralité du tableau après avoir parcouru tous les éléments div où se trouvent les informations de location.

$result[] = $info;// 将每个房屋信息数组添加到$result数组
}
print_r($result);//输出所有租房信息数组

Grâce aux opérations ci-dessus, nous pouvons facilement obtenir toutes les informations pertinentes sur le site de location de Lianjia, apportant ainsi une grande commodité à notre location.

Résumé

Grâce à l'introduction de cet article, je pense que tout le monde peut facilement maîtriser la méthode d'exploration des informations de location de Lianjia avec PHP. Plus précisément, nous devons utiliser la fonction cURL pour obtenir le code source de la page Web, utiliser des expressions régulières pour faire correspondre les éléments HTML où se trouvent les informations requises, utiliser la classe DOMDocument pour analyser les balises HTML et enfin intégrer les informations requises dans un tableau associatif et affichez l'intégralité du tableau pour obtenir les informations finales de location requises.

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