豆瓣电影TOP250爬虫:Python自动提取250部影片信息并保存到Excel
使用Python编写豆瓣电影TOP250爬虫
本教程将教你如何使用Python编写一个爬虫程序,自动爬取豆瓣电影TOP250排行榜中250部影片的相关信息,并将其保存到Excel表格中。
爬取内容
爬虫程序将提取以下信息:
- 基本信息:'排名'、'海报'、'片名'、'评分'、'导演'、'主演'、'上映时间'、'上映地点'、'类型'
- 热门短评:前10名影片的前5条热门短评,其他影片只存储列表页上显示的那一条热门短评
代码实现
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 定义函数:获取影片详情页链接
def get_movie_url(movie):
return movie.find('div', class_='hd').a['href']
# 定义函数:获取影片海报链接
def get_movie_poster(movie):
return movie.find('div', class_='pic').a.img['src']
# 定义函数:获取影片基本信息
def get_movie_info(movie):
movie_info = movie.find('div', class_='bd').p.text.strip().split('
')
movie_info = [info.strip() for info in movie_info if info.strip() != '']
movie_info.insert(1, get_movie_poster(movie)) # 添加海报链接
movie_info.insert(2, get_movie_url(movie)) # 添加影片详情页链接
return movie_info
# 定义函数:获取影片热门短评
def get_movie_reviews(url):
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
reviews = soup.find_all('span', class_='comment-content')
return [review.text.strip() for review in reviews[:5]] # 只获取前5条热门短评
# 发送HTTP请求并解析HTML
url = 'https://movie.douban.com/top250'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
movies = soup.find_all('div', class_='item')
data = []
# 提取影片基本信息与热门短评
for movie in movies:
movie_info = get_movie_info(movie)
data.append(movie_info)
if len(data) < 10:
movie_reviews = get_movie_reviews(get_movie_url(movie))
for i, review in enumerate(movie_reviews):
data.append([f'{i+1}. {review}'])
# 创建DataFrame对象
df = pd.DataFrame(data, columns=['排名', '海报', '片名', '评分', '导演', '主演', '上映时间', '上映地点', '类型', '热门短评'])
# 保存为Excel文件
df.to_excel('top250_movies.xlsx', index=False)
代码说明
- 导入必要的库:requests 用于发送HTTP请求,BeautifulSoup4 用于解析HTML,pandas 用于创建DataFrame并保存为Excel文件。
- 定义函数:
get_movie_url(movie):获取影片详情页链接。get_movie_poster(movie):获取影片海报链接。get_movie_info(movie):获取影片基本信息。get_movie_reviews(url):获取影片热门短评,只获取前5条。
- 发送HTTP请求并解析HTML:获取豆瓣电影TOP250排行榜页面的HTML代码。
- 提取影片信息:循环遍历每个影片,提取基本信息和热门短评,并存储到
data列表中。 - 创建DataFrame对象:将
data列表转换为pandas DataFrame。 - 保存为Excel文件:将DataFrame保存为名为
top250_movies.xlsx的Excel文件。
注意事项
- 确保已安装requests、BeautifulSoup4和pandas库。
- 将代码保存为Python脚本文件(例如:douban_spider.py)。
- 运行该脚本,会在当前目录下生成一个名为
top250_movies.xlsx的Excel文件。
总结
通过使用Python编写爬虫程序,可以轻松地从豆瓣电影TOP250排行榜中提取相关信息,并将其保存到Excel表格中。该程序可以帮助你快速收集和分析大量数据,并进行进一步的处理和应用。
原文地址: http://www.cveoy.top/t/topic/psvB 著作权归作者所有。请勿转载和采集!