Maison  >  Article  >  développement back-end  >  Combat pratique de robots d'exploration en Python : Baidu connaît les robots d'exploration

Combat pratique de robots d'exploration en Python : Baidu connaît les robots d'exploration

王林
王林original
2023-06-10 11:55:38665parcourir

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.

  1. Commencer à explorer

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)
  1. Exploration de plusieurs questions et réponses

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("----------------------")
  1. Enregistrez les résultats de l'exploration dans un fichier

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])
  1. Résumé

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!

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