最近在自学python爬虫,今天闲来无事,爬了一下豆瓣数据
这个网站对于初学者来说还是很友好的注意:有python环境的朋友运行的时候,要把cookie换成自己的
通用性:可以自己换不同的电影id进行数据爬取
Tip:sleep方法规避豆瓣反爬检测
话不多说,看效果 

短评截图:

影评截图:

短评部分源码:

import csv
import time
import requests
from bs4 import BeautifulSoupdef get_movie_name(movie_id, session):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/138.0.0.0 Safari/537.36 Edg/138.0.0.0','cookie': 'll="118212"; bid=rFaMYPh6RCA; _pk_id.100001.4cf6=78012081e6779ccd.1750580841.; __yadk_uid=3Gu8udJKmiPINxEc1pMqhsMt3iTILw5x; _vwo_uuid_v2=D1DDB86BDCAAC17D1AC0CE3E327C775A3|2cae6702ce2d9ebdd6552e7f91d2c447; viewed="36492148_31223437_37345711"; __utmz=223695111.1752599205.3.3.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmz=30149280.1753857983.17.10.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmc=30149280; _ga=GA1.1.1274053689.1750580849; _ga_RXNMP372GL=GS2.1.s1753945876$o1$g1$t1753946097$j14$l0$h0; __utmc=223695111; dbcl2="225204235:K9IRNx2LsCg"; ck=l51l; push_noty_num=0; push_doumail_num=0; __utmv=30149280.22520; frodotk_db="bcc9b11a4f11b72a365d134eed35257e"; 6333762c95037d16=mRYvowDmt1XwRDfRGGQV32WFhY7sBklBCONF%2B3p0iam9najnKjbryn3PdaKfalCR7jfxXLUo3suPF3L%2BzLioR1P2RRXONp7n%2FsFc3BbJRF5l9eOMC1IroX8VRsEm3mml0lenQXG9GCPyawm2QXVTyjEiJgHu9R%2B3czAtR11hFGJJwY2LL1sjEjH1vHbyiQ1ZhgiRc2htCncWoQUq2jenlFydIEFHZnp9ZcDgLq58rQF4vRlERDfo%2BTItp2mHWQEd2JpX1u%2BAqXqO1GBGW%2B0sMWeThO8xc6q0pQU2uycmv4toL%2FY7P9CT4w%3D%3D; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1753963128%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3Dj5LsrMjHtz4N71TPrjZZFswXuTN2I3JtWMVZOUA1JoavRFidVU8qEt3QhHh89lYn%26wd%3D%26eqid%3Dc34e9cd50159cadd0000000668768aa0%22%5D; _pk_ses.100001.4cf6=1; __utma=30149280.1274053689.1750580849.1753943729.1753963128.23; __utma=223695111.1607170658.1750580849.1753946099.1753963128.13; __utmb=223695111.0.10.1753963128; __utmb=30149280.6.10.1753963128; _TDID_CK=1753964509392'}res = session.get(url, headers=headers)soup = BeautifulSoup(res.text, 'html.parser')movie_name = soup.find('meta', attrs={'name': 'description'}).get('content')return movie_namedef get_short_comments(movie_id):global countt1 = time.time()session = requests.session()movie_name = get_movie_name(movie_id, session)print(f'{movie_name}-短评-开始爬取')f = open(f'{movie_name}_豆瓣.csv', mode='w', encoding='utf-8-sig', newline='')writer = csv.writer(f)writer.writerow(['序号', '用户', '地点', '推荐度', '点赞数', '时间', '影评', '用户主页'])type = 'hml'  # h:好评,m:一般,l:差评data = []for t in range(3):for page in range(20):get_short_comments_detail(movie_id, type[t], page, session, data)print(f'(h:好评,m:一般,l:差评) 类型:{type[t]},成功写入{count - 1}条')writer.writerows(data)f.close()session.close()t2 = time.time()print(f'{movie_name}-短评-爬取结束,共有{count - 1}条数据, 耗时:{(t2 - t1) / 60:.2f}分钟')if __name__ == '__main__':movie_id = '36809864'  # 南京照相馆 36809864 、 戏台 35483395 、长安的荔枝 36185502count = 1 # 影评序号get_short_comments(movie_id)

影评部分源码:

import csv
import random
import time
import requests
from bs4 import BeautifulSoupdef get_movie_info(movie_id, session, headers):main_url = f'https://movie.douban.com/subject/{movie_id}/reviews'resp = session.get(main_url, headers=headers)soup = BeautifulSoup(resp.text, 'html.parser')movie_name = soup.find('h1').text.split(' ')[0][:-3]max_count = soup.find('h1').text.split(' ')[1][1:-1]print(f'电影: {movie_name}')print(f'影评总数: {max_count}')return [movie_name, max_count]def creat_file(movie_name):f = open(f'影评/{movie_name}_豆瓣影评.csv', 'w', encoding='utf-8-sig', newline='')writer = csv.writer(f)writer.writerow(["影评id", "用户", "ip地址", "时间", "推荐度", "星级", "标题", "影评", "影评中的图片", "赞同", "反对", "收藏","转发", "回应"])print(f'{movie_name},csv文件创建成功')fw = [f, writer]return fwdef get_data(movie_id):t1 = time.time()headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0','cookie': '_TDID_CK=1754050907914; 6333762c95037d16=iKYsKtNQiUl5kslkdyrAZG0WrN5mr8g856oYqDXKywvnAoRVHz4ciIxnMO811Vq4ttNsLQksxwroxQyWShHnAEbjmrRep%2BElkXKB%2BYpO2ULS6NMXtuqe%2FxfP3CmcWNNLo0hxT98%2BFU7sN8Vh8hc6DUvTHdya3aVNLMSg0RQw7ZJ805Rae0aT8YipKiYxwNGG7vVAE2%2FCdcqdZVDTnNgdGp0A2HS5%2F5Xd85gy8orfe2B3V75l2h5bUDZOLpkZ3kqBth%2FxWxZRWILDApqZfz0YYrdx3uxiIV352E%2BpnfTNJTPrBcFzMQBV9A%3D%3D; bid=rFaMYPh6RCA; _pk_id.100001.4cf6=78012081e6779ccd.1750580841.; __yadk_uid=3Gu8udJKmiPINxEc1pMqhsMt3iTILw5x; _vwo_uuid_v2=D1DDB86BDCAAC17D1AC0CE3E327C775A3|2cae6702ce2d9ebdd6552e7f91d2c447; viewed="36492148_31223437_37345711"; __utmz=223695111.1752599205.3.3.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; _ga=GA1.1.1274053689.1750580849; dbcl2="225204235:K9IRNx2LsCg"; push_noty_num=0; push_doumail_num=0; __utmv=30149280.22520; loc-last-index-location-id="108288"; ll="108288"; _ga_RXNMP372GL=GS2.1.s1753976615$o2$g1$t1753976764$j55$l0$h0; _ga_Y4GN1R87RG=GS2.1.s1753976779$o1$g1$t1753976791$j48$l0$h0; __utmz=30149280.1754045768.26.12.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; ap_v=0,6.0; ck=l51l; __utma=30149280.1274053689.1750580849.1754045768.1754050699.27; __utmb=30149280.0.10.1754050699; __utmc=30149280; __utma=223695111.1607170658.1750580849.1753975932.1754050699.16; __utmb=223695111.0.10.1754050699; __utmc=223695111; frodotk_db="0c8f56b0cff3fc5c25ae04126fdbf514"; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1754050700%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3Dj5LsrMjHtz4N71TPrjZZFswXuTN2I3JtWMVZOUA1JoavRFidVU8qEt3QhHh89lYn%26wd%3D%26eqid%3Dc34e9cd50159cadd0000000668768aa0%22%5D; _pk_ses.100001.4cf6=1',}session = requests.Session()movie_info = get_movie_info(movie_id, session, headers) # 返回 电影名、影评总数fw = creat_file(movie_info[0])# movie_info[1] = 40  # 默认获取所有影评,想获取多少条影评可以自己填,默认:每页20条get_comments(movie_id, int(movie_info[1]), session, headers, fw[0], fw[1])t2 = time.time()print(f'成功获取{movie_info[1]}条评论,耗时:{(t2-t1)/60:.2f}分钟')if __name__ == '__main__':movie_id = 36438475  # 电影id, 南京照相馆:36809864, 浪浪山小妖怪:36438475get_data(movie_id)

freelybill
源码下载:24python爬虫豆瓣短评和影评源代码资源-CSDN下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91995.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91995.shtml
英文地址,请注明出处:http://en.pswp.cn/web/91995.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

构建属于自己的第一个 MCP 服务器:初学者教程

为什么需要 MCP 服务器? 你是否遇到过这样的场景:向 AI 助手(比如 GitHub Copilot)询问 “北京今天的天气”,得到的回复却是 “我无法访问实时天气数据”? 这是因为大多数 AI 模型本身 “与世隔绝”—— 它…

个人项目介绍:语音识别小助手

一、项目内容 基于STM32F103RCT6制作了一款集语音识别、按键控制、信息显示、温湿度监测等多功能于一体的智能设备,满足多样化的交互需求。 二、个人工作内容 依据项目需求,选定 STM32F103RCT6 单片机、SU-03T语音识别模组、AHT25 温湿度传感器等核心元件…

【Django】-1- 开发项目搭建

一、PDM Django 搭建项目👇🎯 核心目标用 PDM(更现代的 Python 包管理工具),快速创建并管理 Django 项目(Web 框架),让开发流程更丝滑✨🧩 分步拆解1. 创建项目用 PDM 初…

c++:设计模式训练

写一个鸟类:有一个多态函数:run 写一个企鹅类,继承自鸟类:重写 run 写一个鸵鸟类,继承自鸟类,重写 run 写一个老鹰类,继承自鸟类,重写run 写一个鸟笼,能够存放 不同的鸟…

配置Mybatis环境

配置Mybatis环境MyBatis是什么配置Mybatis环境MyBatis是什么 MyBatis 一个支持普通 SQL 查询、存储过程以及高级映射的持久层框架。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作,使得开发者可以更专注于 SQL 本身,而不必花费过多…

生产环境中基于Istio的Kubernetes多集群灰度发布架构实战经验分享

生产环境中基于Istio的Kubernetes多集群灰度发布架构实战经验分享 在大规模分布式微服务架构中,如何在多集群环境下平滑、安全地发布新版本,一直是保证高可用、高可靠的关键需求。本文以真实生产环境案例为基础,分享我们团队基于Istio Servic…

Kubernetes(k8s)之认识Pod

01了解Pod Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程。 一个Pod封装一个应用容器(也可以有多个容器),存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。它可能由单个容器或多个容器共享组成的资源。 Kubern…

Nginx服务做负载均衡网关

1. 概述 内部Nginx服务器做服务网关,代理后端应用服务,卸载ssl域名证书,将接收的https请求,转发至后端http服务。华为防火墙负责NAT,启用服务器负载均衡功能,将公网虚拟IP端口映射到内部多台Nginx服务器上…

十三、请求响应-请求:日期参数和JSON参数

日期参数代码:日期参数 //日期时间参数RequestMapping("/dataParam")public String dataParam(DateTimeFormat(pattern "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){System.out.println(updateTime);return "OK";}结果JSON参…

可信数据库大会现场,TDengine 时序数据库展示核电场景下的高性能与 AI 创新

设备在升级,场站在扩建,但数据系统却还在“跟不上”。这正是许多核电企业在推进数字化转型过程中最真实的感受。高频采集、长周期存储、精度要求高……这些构成了对数据库系统的“炼狱级考验”。在这样一个背景下,国产数据库的能力边界正在被…

ctflearn-POST practice

靶场地址:165.227.106.113/post.php 解题: 一.分析题目 提示: 知道要用POST请求提交表单,看一下源码信息 得到可能需要用post请求方式去提交表单,并且传数据admin和password,这边提供两种方式 方法一&…

FPGA实现OV7670摄像头图像处理至VGA显示器

本文还有配套的精品资源,点击获取 简介:本项目基于FPGA技术,结合OV7670摄像头传感器进行视频捕获,经SDRAM存储,并通过VGA显示器展示。同时,集成了中值滤波算法提高图像清晰度。该项目涉及数字图像处理系…

使用python写一套完整的智能体小程序

创建一个简单的智能体(Agent)程序在人工智能和自动化任务中,智能体(Agent)是指能够感知环境并通过决策和行动来实现目标的实体。Python 提供了丰富的库和框架,可以用于构建智能体程序,例如使用 …

电商项目_性能优化_海量数据读写、存储、检索

海量数据读写方式选择高并发读写场景分析无论任何业务系统,无非就是两个操作:写和读。 在海量数据和高并发的场景下,写和读就会成为系统性能的瓶颈。下面分析不同业务场景下面临的问题:侧重“高并发读”的系统场景1:搜…

RabbitMQ面试精讲 Day 9:优先级队列与惰性队列

【RabbitMQ面试精讲 Day 9】优先级队列与惰性队列 文章标签 RabbitMQ,优先级队列,惰性队列,消息队列,面试技巧,系统架构 文章简述 本文是"RabbitMQ面试精讲"系列第9天,深入解析优先级队列与惰性队列的实现原理与实战应用。文章详细讲解优先级队列的排…

[硬件电路-121]:模拟电路 - 信号处理电路 - 模拟电路中常见的难题

模拟电路设计是电子工程中极具挑战性的领域,其核心难题源于信号的连续性、元件的非理想特性以及环境干扰的复杂性。以下是模拟电路中常见的难题及其技术本质与解决方案:1. 噪声与干扰:信号的“隐形杀手”技术本质:模拟信号对微小电…

Java 大视界 -- Java 大数据在智能交通智能停车诱导与车位共享优化中的应用(381)

Java 大视界 -- Java 大数据在智能交通智能停车诱导与车位共享优化中的应用(381)引言:正文:一、智能停车的 “老大难”:不只是 “车位少” 那么简单1.1 车主与车位的 “错位困境”1.1.1 信息滞后的 “睁眼瞎”1.1.2 车…

基于落霞归雁思维框架的自动化测试实践与探索

基于落霞归雁思维框架的自动化测试实践与探索 在当今快速发展的软件开发领域,自动化测试已成为提高软件质量和开发效率的关键环节。本文将结合落霞归雁的思维框架——“观察现象 → 找规律 → 应用规律 → 实践验证”,探讨如何将其应用于自动化测试领域&…

Unity Shader编程进阶:掌握高阶渲染技术 C# 实战案例

Unity Shader编程完全入门指南:从零到实战 C# 本文将深入探讨Unity Shader编程的高级技术,包括自定义光照模型、后处理效果、GPU实例化、表面着色器深度应用等,帮助开发者提升渲染效果与性能优化能力。 提示:内容纯个人编写&#…

(论文速读)Text-IF:基于语义文本引导的退化感知交互式图像融合方法

论文信息论文题目:Text-IF: Leveraging Semantic Text Guidance for Degradation-Aware and Interactive Image Fusion(Text-IF:利用语义文本指导退化感知和交互式图像融合)会议:CVPR2024摘要:图像融合的目的是将不同源…