2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Un robot d'exploration Web est un programme utilisé pour récupérer automatiquement du contenu Web. Il simule le processus de navigation des utilisateurs sur les pages Web, obtient le code source des pages Web en envoyant des requêtes HTTP et utilise la technologie d'analyse et d'extraction pour obtenir les données requises.
Le robot d'exploration envoie une requête HTTP au site Web cible. La requête inclut l'URL, la méthode de requête (telle que GET ou POST), les en-têtes de requête (Headers), etc. Une fois que le serveur a reçu la demande, il renvoie une réponse HTTP contenant le code d'état, l'en-tête de la réponse et le corps de la réponse (contenu de la page Web).
requests
etaiohttp
, utilisé pour envoyer des requêtes HTTP.BeautifulSoup
、lxml
etPyQuery
, utilisé pour analyser le contenu d'une page Web.pandas
etSQLite
, utilisé pour stocker les données analysées.asyncio
etaiohttp
, utilisé pour implémenter des robots d'exploration asynchrones et améliorer l'efficacité de l'exploration.Ensuite, nous utiliserons 7 petits cas de robots Python pour vous aider à mieux apprendre et comprendre les connaissances de base des robots Python. Ce qui suit est une introduction et un code source pour chaque cas :
Ce cas utiliseBeautifulSoup
La bibliothèque explore des informations telles que les titres de films, les notes et le nombre de critiques des 250 meilleurs films Douban, et enregistre ces informations dans un fichier CSV.
- import requests
- from bs4 import BeautifulSoup
- import csv
-
- # 请求URL
- url = 'https://movie.douban.com/top250'
- # 请求头部
- headers = {
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
- }
-
- # 解析页面函数
- def parse_html(html):
- soup = BeautifulSoup(html, 'lxml')
- movie_list = soup.find('ol', class_='grid_view').find_all('li')
- for movie in movie_list:
- title = movie.find('div', class_='hd').find('span', class_='title').get_text()
- rating_num = movie.find('div', class_='star').find('span', class_='rating_num').get_text()
- comment_num = movie.find('div', class_='star').find_all('span')[-1].get_text()
- writer.writerow([title, rating_num, comment_num])
-
- # 保存数据函数
- def save_data():
- f = open('douban_movie_top250.csv', 'a', newline='', encoding='utf-8-sig')
- global writer
- writer = csv.writer(f)
- writer.writerow(['电影名称', '评分', '评价人数'])
- for i in range(10):
-