Python 7 个网络爬虫实战案例及源码解析
本文通过 7 个经典案例,演示如何使用 Python 进行网页数据采集。涵盖静态页面解析、动态渲染处理及数据持久化存储。内容包含完整源码解析、反爬策略应对及伦理规范,适合初学者系统学习。
1. 爬取豆瓣电影 Top250
本案例使用 BeautifulSoup 库爬取豆瓣电影 Top250 的电影名称、评分和评价人数等信息,并将这些信息保存到 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=)
writer
writer = csv.writer(f)
writer.writerow([, , ])
i ():
url = + (i*) +
response = requests.get(url, headers=headers)
parse_html(response.text)
f.close()
__name__ == :
save_data()


