包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取】
使用Python爬取豆瓣电影Top250数据
本文将介绍如何使用Python的requests和BeautifulSoup库来爬取豆瓣电影Top250的数据,并将结果保存为CSV文件。
1. 准备工作
首先需要安装必要的库:
pip install requests beautifulsoup4 pandas
2. 分析网页结构
打开豆瓣电影Top250页面(https://movie.douban.com/top250),我们可以发现:
每页显示25部电影
共10页
每部电影的信息包含在<div class="item"中
3. 编写爬虫代码
import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
import random
# 设置请求头模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
# 存储所有电影信息
movies = []
def get_movies(url):
# 发送HTTP请求
response = requests.get(url, headers=headers)
# 解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 获取所有电影项
items = soup.find_all('div', class_='item')
for item in items:
# 排名
rank = item.find('em').text
# 标题
title = item.find('span', class_='title').text
# 评分
rating = item.find('span', class_='rating_num').text
# 评价人数
num_reviews = item.find('div', class_='star').find_all('span')[-1].text[:-3]
# 简介
quote_tag = item.find('span', class_='inq')
quote = quote_tag.text if quote_tag else ''
# 添加到列表
movies.append({
'排名': rank,
'标题': title,
'评分': rating,
'评价人数': num_reviews,
'简介': quote
})
# 爬取所有页面
base_url = 'https://movie.douban.com/top250?start={}&filter='
for i in range(10):
url = base_url.format(i * 25)
get_movies(url)
print(f'已爬取第{i+1}页')
time.sleep(random.uniform(1, 3)) # 随机延迟1-3秒,避免被封
# 保存为CSV文件
df = pd.DataFrame(movies)
df.to_csv('douban_top250.csv', index=False, encoding='utf_8_sig')
print('数据已保存为douban_top250.csv')
4. 代码说明
请求头设置:添加User-Agent模拟浏览器访问,避免被识别为爬虫
页面解析:使用BeautifulSoup解析HTML,提取所需信息
反爬措施:
设置随机延迟
使用合理的爬取速度
数据存储:使用pandas将数据保存为CSV文件
5. 注意事项
豆瓣有反爬机制,请控制爬取速度
不要频繁访问,建议增加随机延迟
本代码仅供学习参考,请勿用于商业用途
实际使用时可能需要处理更多异常情况
6. 扩展功能
可以进一步扩展的功能:
获取电影详情页信息(导演、演员、类型等)
使用多线程提高爬取效率
将数据存入数据库
添加代理IP池应对反爬
最后:
希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!
文末福利
最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【点击这里】领取!
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习