Maison  >  Article  >  développement back-end  >  Combat de chenilles pratique en Python : 58 city crawler

Combat de chenilles pratique en Python : 58 city crawler

WBOY
WBOYoriginal
2023-06-10 11:36:072810parcourir

Avec le développement rapide d'Internet, les gens peuvent obtenir les informations dont ils ont besoin via différents canaux. À l’ère de l’information, les robots d’exploration Web sont devenus un outil indispensable. Dans cet article, nous présenterons le robot d'exploration actuel du robot d'exploration de ville Python-58.

1. Introduction aux robots d'exploration

Un robot d'exploration Web est un programme automatisé qui accède aux pages Web via le protocole HTTP et extrait les données requises. Sur Internet, il existe de nombreuses données, mais toutes ne sont pas disponibles via des API. Les robots d’exploration sont donc devenus un moyen important d’obtenir des données.

Le flux de travail d'un robot d'exploration est généralement divisé en trois étapes :

  1. Télécharger des pages Web : téléchargez des pages Web via le protocole HTTP, généralement à l'aide de la bibliothèque de requêtes
  2. Analyser les pages Web : analysez les pages Web téléchargées et extrayez celles requises ; données, utilisez généralement la bibliothèque BeautifulSoup4 Implémentation ;
  3. Stockage des données : enregistrez les données requises localement ou dans la base de données.

2. Combat de chenilles pratique : 58 city crawler

58 city est un site Web national d'informations classifiées, où les utilisateurs peuvent publier des informations sur les produits, des informations sur la location, des informations sur le recrutement, etc. Cet article explique comment implémenter le robot d'exploration 58 city via Python pour obtenir des informations sur la location.

  1. Analyser le site Web

Avant d'explorer, vous devez analyser le site Web 58.com. En accédant à la page de location et en sélectionnant la ville souhaitée, vous constaterez que l'URL contient des informations sur la ville. Par exemple, l'URL de la page de location est : « https://[city pinyin].58.com/zufang/ ». En modifiant le pinyin de la ville dans l'URL, vous pouvez explorer les informations de location dans d'autres villes.

Après avoir ouvert la page de location, vous constaterez que la structure de la page est divisée en deux parties : la barre de recherche et la liste d'informations sur la location. La liste des informations de location comprend le titre, le loyer, la superficie, la situation géographique, le type de logement et d'autres informations sur chaque information de location.

  1. Écrire un robot

Après avoir analysé le site 58.com, écrivez simplement le robot. Tout d’abord, vous devez importer les requêtes et les bibliothèques BeautifulSoup4. Le code est le suivant :

import requests
from bs4 import BeautifulSoup

Ensuite, obtenir les informations de location dans chaque ville nécessite de construire la bonne URL. Le code est le suivant :

city_pinyin = "bj"
url = "https://{}.58.com/zufang/".format(city_pinyin)

Après avoir obtenu la bonne URL, vous pouvez utiliser la bibliothèque de requêtes pour obtenir le code source HTML de la page. Le code est le suivant :

response = requests.get(url)
html = response.text

Maintenant que vous avez obtenu le code source HTML de la page de location, vous devez utiliser la bibliothèque BeautifulSoup4 pour analyser le code source HTML et extraire les données requises. Selon la structure de la page, la liste des informations de location est contenue dans une balise div avec une classe « list-wrap ». Nous pouvons obtenir toutes les balises div avec la classe "list-wrap" via la fonction find_all() de la bibliothèque BeautifulSoup4. Le code est le suivant :

soup = BeautifulSoup(html, "lxml")
div_list = soup.find_all("div", class_="list-wrap")

Après avoir obtenu la balise div, vous pouvez parcourir la liste des balises et extraire les données de chaque information de location. Selon la structure de la page, chaque information de location est contenue dans une balise div avec la classe « des », comprenant le titre, le loyer, la superficie, la situation géographique, le type de logement et d'autres informations. Le code est le suivant :

for div in div_list:
    info_list = div.find_all("div", class_="des")
    for info in info_list:
        # 提取需要的租房数据

Dans la boucle for, nous avons à nouveau utilisé la fonction find_all() pour obtenir toutes les balises div de classe "des". Ensuite, nous devons parcourir ces balises div et extraire les données de location requises. Par exemple, le code pour extraire le titre et d'autres informations des informations de location est le suivant :

title = info.find("a", class_="t").text
rent = info.find("b").text
size = info.find_all("p")[0].text.split("/")[1]
address = info.find_all("p")[0].text.split("/")[0]
house_type = info.find_all("p")[1].text

Grâce au code ci-dessus, nous avons réussi à obtenir chaque information de location sur la page de location des 58 villes et à l'encapsuler dans des variables. Ensuite, en imprimant les variables de chaque information de location, vous pouvez voir la sortie des données sur la console. Par exemple :

print("标题:{}".format(title))
print("租金:{}".format(rent))
print("面积:{}".format(size))
print("地理位置:{}".format(address))
print("房屋类型:{}".format(house_type))

3. Résumé

Cet article présente le véritable robot d'exploration en Python - 58 city crawler. Avant la mise en œuvre du robot d'exploration, nous avons d'abord analysé la page de location de 58 villes et déterminé l'URL pour obtenir les informations de location et les données à extraire. Ensuite, le robot a été implémenté à l’aide de requêtes et de la bibliothèque BeautifulSoup4. Grâce au robot d'exploration, nous avons réussi à obtenir les informations de location de la page de location de 58 villes et à les encapsuler dans des variables pour faciliter le traitement ultérieur des données.

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