当前位置: 首页 > news >正文

使用python进行网络爬虫豆瓣影评

使用py怕爬豆瓣影评

import requests
from bs4 import BeautifulSoup
import pandas as pd
import time# 目标URL,替换为你想爬取的电影页面的ID
movie_id = '26752088'  # 示例:电影《哪吒之魔童降世》的ID
url = f"https://movie.douban.com/subject/{movie_id}/comments"# 请求头,模拟浏览器访问
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'
}# 存储影评信息的列表
comments_list = []# 爬取多个页面的数据(每个页面包含 20 条影评)
def get_comments(page_num=10):for page in range(page_num):print(f'正在爬取第 {page + 1} 页的影评...')# 使用 params 参数传递 start 值,控制翻页params = {'start': page * 20,'limit': 20,'sort': 'new_score','status': 'P'}# 发送 GET 请求response = requests.get(url, headers=headers, params=params)soup = BeautifulSoup(response.text, 'lxml')# 查找影评的列表comment_divs = soup.find_all('div', class_='comment')for div in comment_divs:# 提取用户、评分、评论时间和影评内容user = div.find('span', class_='comment-info').find('a').get_text()try:rating = div.find('span', class_='rating')['title']except TypeError:rating = '无评分'comment_time = div.find('span', class_='comment-time')['title']comment_content = div.find('span', class_='short').get_text().strip()# 将提取到的信息添加到列表comments_list.append({'User': user,'Rating': rating,'Time': comment_time,'Comment': comment_content})# 适当延时,避免请求过快被封time.sleep(2)# 调用函数获取影评
get_comments(10)  # 设置需要爬取的页数,例如10页# 使用 pandas 将数据保存为 CSV 文件
df = pd.DataFrame(comments_list)
df.to_csv('douban_movie_comments.csv', index=False, encoding='utf-8-sig')print("爬取完成,数据已保存为 douban_movie_comments.csv")

http://www.mrgr.cn/news/27516.html

相关文章:

  • [论文笔记]An LLM Compiler for Parallel Function Calling
  • The Planets: Earth -- 练习
  • 图形几何之美系列:法向量计算之轮廓有向面积辅助法
  • git撤销、回退某个commit的修改
  • tauri开发中,使用node将png图片转成苹果的icns图标格式,解决tauri icon生成的mac图标过大问题
  • 卫导调零天线功率倒置算法原理及MATLAB仿真
  • 分页查询标准流程
  • 本地不能訪問linux的kafka服務
  • 【物联网】一篇文章带你认识RFID(射频识别技术)
  • 【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】004 - Kernel 启动引导代码head.S 源码逐行分析
  • 白手套公司
  • supermap Iclient3d for cesium加载地形并夸大地形
  • SpringCloudAlibaba:Seata
  • 《C++代码高度优化之双刃剑:避免过度优化引发的“暗雷”》
  • 基于SSM的银发在线教育云平台的设计与实现
  • SpringCloud的学习,Consul服务注册与发现、分布式配置,以及 服务调用和负载均衡
  • JavaDS —— B树
  • 【测试报告】博客系统
  • 24年9月通信基础知识补充2
  • S32K3 工具篇7:如何使用VScode编译EB MCAL工程
  • 超链接/表格/表单的复习(课后作业)
  • 进程vs线程:高效并发编程的基石
  • [Python学习日记-22] Python 中的字符编码(下)
  • python数据分析知识点大全
  • mysql笔记9(子查询)
  • 【C++11】智能指针