Python爬取豆瓣电影Top250数据

任务

爬取豆瓣电影top250中的影片名称、影片海报、年份、地区、类型、评分、评价人数、总体评价,并输出到douban_top250.xlsx文件中

环境

Python 3.8

requests

bs4

openpyxl

源码

python 复制代码
# 创建一个新的Excel工作簿
workbook = openpyxl.Workbook()
# 获取默认的工作表
sheet = workbook.active
# 写入数据
sheet['A1'] = '序号'
sheet['B1'] = '电影名'
sheet['C1'] = '海报'
sheet['D1'] = '年份'
sheet['E1'] = '地区'
sheet['F1'] = '类型'
sheet['G1'] = '评分'
sheet['H1'] = '评价人数'
sheet['I1'] = '总体评价'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
}
index = 1
for start_page in range(0, 250, 25):
    response = requests.get(f"https://movie.douban.com/top250?start={start_page}", headers=headers)
    html = response.text
    # html.parser表示使用html进行解析
    soup = BeautifulSoup(html, "html.parser")
    items = soup.find_all("div", attrs={"class": "item"})
    for item in items:
        # 海报
        post = item.find("img").get('src')
        # 名称
        name = item.find('span', class_="title").text
        # 年份
        infos = item.find('p', class_='').text.split("\n")[2].split("/")
        year = infos[0].strip()
        location = infos[1].strip()
        category = infos[2].strip()
        rate = item.find('span', class_='rating_num').text
        stars = item.find('div', class_='star')
        rate_people = stars.contents[7].text[:-3]
        review = ""
        if item.find('span', class_='inq') is not None:
            review = item.find('span', class_='inq').text
        sheet.append([index, name, post, year, location, category, rate, rate_people, review])
        index = index + 1
# 保存工作簿
workbook.save('./files/douban_top250.xlsx')

结果

相关推荐
智航GIS13 小时前
9.4 Word 自动化
python·自动化·word
2501_9418091413 小时前
面向多活架构与数据地域隔离的互联网系统设计思考与多语言工程实现实践分享记录
java·开发语言·python
aloha_78913 小时前
agent智能体学习(尚硅谷,小智医疗)
人工智能·spring boot·python·学习·java-ee
亿牛云爬虫专家14 小时前
Worker越简单,系统越稳定:从单机到集群
爬虫·python·集群·爬虫代理·单机·代理ip·worker
smj2302_7968265215 小时前
解决leetcode第3801题合并有序列表的最小成本
数据结构·python·算法·leetcode
AI数据皮皮侠15 小时前
中国乡村旅游重点村镇数据
大数据·人工智能·python·深度学习·机器学习
小北方城市网15 小时前
第 11 课:Python 全栈项目进阶与职业发展指南|从项目到职场的无缝衔接(课程终章・进阶篇)
大数据·开发语言·人工智能·python·数据库架构·geo
danyang_Q15 小时前
d2l安装(miniforge+cuda+pytorch)
人工智能·pytorch·python
源码梦想家16 小时前
多语言高性能异步任务队列与实时监控实践:Python、Java、Go、C++实战解析
开发语言·python
百***787516 小时前
Gemini 3.0 Pro与2.5深度对比:技术升级与开发实战指南
开发语言·python·gpt