Maison > Article > développement back-end > Combat pratique de robots d'exploration en Python : Baidu connaît les robots d'exploration
Python, en tant que langage de programmation puissant, peut nous aider à obtenir plus facilement de grandes quantités de données sur Internet. Parmi eux, la technologie des chenilles est une partie très représentative. Les robots d'exploration peuvent obtenir diverses données sur Internet et les analyser, nous fournissant ainsi une grande quantité d'informations précieuses. En Python, la technologie des robots d’exploration peut également être largement utilisée. Baidu Zhizhi est un site Web qui fournit un grand nombre de questions et de réponses sur les connaissances. Cet article présente la méthode d'implémentation du robot d'exploration Baidu Zhizhi en Python.
Tout d'abord, nous devons comprendre comment explorer le site Web Baidu. En Python, vous pouvez utiliser la bibliothèque requêtes ou la fonction urlopen de la bibliothèque urllib pour obtenir le code source du site. Après avoir obtenu le code source, nous pouvons utiliser la bibliothèque BeautifulSoup pour analyser le document de la page Web afin de filtrer facilement les informations requises. Ici, ce que nous devons explorer, c'est chaque question et la meilleure réponse correspondante. En examinant le code source connu de Baidu, nous pouvons constater que chaque meilleure réponse a son propre identifiant de classe indépendant, et nous pouvons sélectionner le contenu correspondant en fonction de celui-ci.
Voici le processus de mise en œuvre du code :
import requests from bs4 import BeautifulSoup # 网页地址 url = "https://zhidao.baidu.com/question/2031956566959407839.html" # 发送请求 r = requests.get(url) # 解析网页 soup = BeautifulSoup(r.text, "html.parser") # 获取问题 question = soup.find("span", class_="ask-title").text print("问题: ", question) # 获取最佳答案 answer = soup.find("pre", class_="best-text mb-10").text print("最佳答案: ", answer)
Ensuite, nous devons explorer plusieurs questions et leurs réponses. Nous pouvons créer une liste de questions, explorer chaque question et répondre via une boucle for, puis l'imprimer. Étant donné que le suffixe de chaque URL de question sur Baidu est différent, nous devons générer automatiquement l'adresse de la page Web qui doit être explorée via le formatage de chaîne.
Voici le code d'implémentation :
import requests from bs4 import BeautifulSoup # 创建问题列表 questions = [ "2031956566959407839", "785436012916117832", "1265757662946113922", "455270192556513192", "842556478655981450" ] # 循环爬取问题和最佳答案 for q in questions: # 根据问题ID拼接URL url = f"https://zhidao.baidu.com/question/{q}.html" # 发送请求 r = requests.get(url) # 解析网页 soup = BeautifulSoup(r.text, "html.parser") # 获取问题 try: question = soup.find("span", class_="ask-title").text except: question = "" # 获取最佳答案 try: answer = soup.find("pre", class_="best-text mb-10").text except: answer = "" # 打印问题和答案 print("问题: ", question) print("最佳答案: ", answer) print("----------------------")
Enfin, nous enregistrons les résultats de l'exploration dans un fichier. Vous pouvez utiliser le module csv intégré de Python pour enregistrer chaque question et réponse dans un fichier csv. De plus, afin d'éviter le problème des caractères chinois tronqués, nous pouvons ajouter BOM (Byte Order Mark) à l'en-tête du fichier csv.
Voici le code d'implémentation :
import requests from bs4 import BeautifulSoup import csv import codecs # 创建问题列表 questions = [ "2031956566959407839", "785436012916117832", "1265757662946113922", "455270192556513192", "842556478655981450" ] # 创建文件 with open("questions.csv", "w", newline='', encoding='utf-8-sig') as file: writer = csv.writer(file) writer.writerow(['问题', '最佳答案']) # 循环爬取问题和最佳答案 for q in questions: # 根据问题ID拼接URL url = f"https://zhidao.baidu.com/question/{q}.html" # 发送请求 r = requests.get(url) # 解析网页 soup = BeautifulSoup(r.text, "html.parser") # 获取问题 try: question = soup.find("span", class_="ask-title").text except: question = "" # 获取最佳答案 try: answer = soup.find("pre", class_="best-text mb-10").text except: answer = "" # 保存到csv文件 writer.writerow([question, answer])
Dans cet article, nous avons présenté comment utiliser Python pour explorer le site Web Baidu. Nous avons appris comment utiliser les bibliothèques request et urllib pour envoyer des requêtes, utiliser la bibliothèque BeautifulSoup pour analyser les pages Web et comment enregistrer les résultats analysés dans un fichier csv. Grâce à ces méthodes, nous pouvons facilement obtenir des données sur Internet et les analyser. La technologie des robots d'exploration joue un rôle très important dans l'analyse du Big Data à l'ère d'Internet. En tant que programmeur Python, il est important d'apprendre et de maîtriser les connaissances pertinentes.
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!