Python登录豆瓣并爬取影评!

完全小白篇-用python爬取豆瓣电影影评 Python爬虫技术5天速成(2020全新合集) 阅读详情
  1. 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
  2. 个性化设置(如用户自定义设置、主题等)
  3. 浏览器行为跟踪(如跟踪分析用户行为等)

我们今天就用requests库来登录豆瓣然后爬取影评为例子,

用代码讲解下Cookie的 会话状态管理(登录)功能 。

此教程仅用于学习,不得商业获利!如有侵害任何公司利益,请告知删除!

一、需求背景

Python资源共享群:484031800

之前猪哥带大家爬取了优酷的弹幕并生成词云图片,发现优酷弹幕的质量并不高,有很多介词和一些无效词,比如:哈哈、啊啊、这些、那些。。。而豆瓣口碑一直不错,有些书或者电影的推荐都很不错,所以我们今天来爬取下豆瓣的影评,然后生成词云,看看效果如何吧!

二、功能描述

我们使用requests库登录豆瓣,然后爬取影评,最后生成词云!

为什么我们之前的案例(京东、优酷等)中不需要登录,而今天爬取豆瓣需要登录呢?那是因为豆瓣在没有登录状态情况下只允许你查看前200条影评,之后就需要登录才能查看,这也算是一种反扒手段!

 

 

 

 

三、技术方案

我们看下简单的技术方案,大致可以分为三部分:

  1. 分析豆瓣的登录接口并用requests库实现登录并保存cookie
  2. 分析豆瓣影评接口实现批量抓取数据
  3. 使用词云做影评数据分析

方案确定之后我们就开始实际操作吧!

四、登录豆瓣

做爬虫前我们都是先从浏览器开始,使用调试窗口查看url。

1.分析豆瓣登录接口

打开登录页面,然后调出调试窗口,输入用户名和密码,点击登录。

 

 

 

这里猪哥建议输入错误的密码,这样就不会因为页面跳转而捕捉不到请求!上面我们便获取到登录请求的URL: https://accounts.douban.com/j/mobile/login/basic

因为是一个POST请求,所以我们还需要看看请求登录时携带的参数,我们将调试窗口往下拉查看 Form Data 。

 

 

 

 

2.代码实现登录豆瓣

得到登录请求URL和参数后,我们就可以来用requests库来写一个登录功能!

 

 

 

 

3.保存会话状态

上期我们在爬取优酷弹幕的时候我们是复制浏览器中的Cookie到请求头中这来来保存会话状态,但是我们如何让代码自动保存Cookie呢?

也许你见过或者使用过 urllib 库,它用来保存Cookie的方式如下:

cookie = http.cookiejar.CookieJar()
handler = urllib.request.HttpCookieProcessor(cookie)
opener = urllib.request.build_opener(handler)
opener(url)

但是前面我们介绍requests库的时候就说过:

requests库是一个基于urllib/3的第三方网络库,它的特点是功能强大,API优雅。由上图我们可以看到,对于http客户端python官方文档也推荐我们使用requests库,实际工作中requests库也是使用的比较多的库。

所以今天我们来看看requests库是如何优雅的帮我们自动保存Cookie的?我们来对代码做一点微调,使之能自动保存Cookie维持会话状态!

 

 

 

上述代码中,我们做了两处改动:

s = requests.Session()

我们可以看到发起请求的对象变成了session对象,它和原来的requests对象发起请求方式一样,只不过它每次请求会自动带上Cookie,所以后面我们都用Session对象来发起请求!

4.这个Session对象是我们常说的session吗?

讲到这里也许有同学会问: requests.Session对象 是不是我们常说的 session 呢?

答案当然不是,我们常说的session是保存在服务端的,而requests.Session对象只是一个用于保存Cookie的对象而已,我们可以看看它的源码介绍

 

 

 

所以大家千万不要将requests.Session对象与session技术搞混了!

五、爬取影评

我们实现了登录和保存会话状态之后,就可以开始干正事啦!

1.分析豆瓣影评接口

首先在豆瓣中找到自己想要分析的电影,这里猪哥选择一部美国电影 《荒野生存》 ,因为这部电影是猪哥心中之最,没有之一!

 

 

 

然后下拉找到影评,调出调试窗口,找到加载影评的URL

 

 

 

 

2.爬取一条影评数据

 

 

 

但是爬取下来的是一个HTML网页数据,我们需要将影评数据提取出来

 

 

 

 

3.影评内容提取

上图中我们可以看到爬取返回的是html,而影评数据便是嵌套在html标签中,如何提取影评内容呢?

这里我们使用正则表达式来匹配想要的标签内容,当然也有更高级的提取方法,比如使用某些库(比如bs4、xpath等)去解析html提取内容,而且使用库效率也比较高,但这是我们后面的内容,我们今天就用正则来匹配!

我们先来分析下返回html 的网页结构

 

 

 

我们发现影评内容都是在 <span class="short"></span> 这个标签里,那我们 就可以写正则来匹配这个标签里的内容啦!

 

 

 

检查下提取的内容

 

 

 

 

4.批量爬取

我们爬取、提取、保存完一条数据之后,我们来批量爬取一下。根据前面几次爬取的经验,我们知道批量爬取的关键在于找到分页参数,我们可以很快发现URL中有一个 start 参数便是控制分页的参数。

 

 

 

这里只爬取了25页就爬完,我们可以去浏览器中验证一下,是不是真的只有25页,猪哥验证过确实只有25页!

六、分析影评

数据抓取下来之后,我们就来使用词云分析一下这部电影吧!

基于使用词云分析的案例前面已经讲过两个了,所以猪哥只会简单的讲解一下!

1.使用结巴分词

因为我们下载的影评是一段一段的文字,而我们做的词云是统计单词出现的次数,所以需要先分词!

 

 

 

 

2.使用词云分析

 

 

 

最终成果:

 

 

 

从这些词中我们可以知道这是关于一部关于 追寻自我 与 现实生活 的电影,猪哥裂墙推荐!!!

七、总结

今天我们以爬取豆瓣为例子,学到了不少的东西,来总结一下:

  1. 学习如何使用requests库发起POST请求
  2. 学习了如何使用requests库登录网站
  3. 学习了如何使用requests库的Session对象保持会话状态
  4. 学习了如何使用正则表达式提取网页标签中的内容
【深度学习】Python爬取豆瓣实现影评分析 Python爬取豆瓣 阅读详情

相关推荐

运用python模拟登录豆瓣爬取并分析某部电影的影评

前段时间奉俊昊的《寄生虫》在奥斯卡上获得不少奖项,我也比较喜欢看电影,看过这部电影后比较好奇其他人对这部电影的看法,于是先用R爬取了部分豆瓣影评,分词后做了词云了解,但是如果不登录豆瓣直接爬取影评只可以获得十页短评,这个数据量我认为有点少,于是整理了python模拟登录豆瓣,批量爬取数据,制作特别样式词云的方法。 ...

qq_38599326的博客 2835

【爬虫实战】用python爬豆瓣电影《热烈》的短评!

马哥原创:用python爬豆瓣电影短评,字段含:评论者昵称, 评论星级, 评论时间, 评论者IP属地, 有用数, 评论内容。

马哥的专栏 3985

Python爬取《流浪地球》豆瓣影评与数据分析可视化

大年初一《流浪地球》全国上映。在豆瓣评分上,首日开分站稳8分以上,延续了之前点映的高口碑。微博上跟着出现吴京客串31天与投资6000万的热搜。知乎上关于“如何评价刘慈欣小说改编的同名电影《流浪地球》”的回答引起了众多人关注,包括该片导演郭帆的最高赞回答。 本篇文章爬取了豆瓣网上《流浪地球》的部分影评,并进行数据分析及可视化处理。下面是爬取分析的整个过程,让我们愉快开始吧! 一、网页分析 豆瓣网从2017年10月开始全面禁止爬取数据。在非登录状态下仅仅可以爬取200条短评,登录状态下仅可以爬取500条数据。.

qq_27851579的博客 4404

实战1、爬取豆瓣电影影评-xpath解析

爬取豆瓣电影影评

。 1535

用Python爬取豆瓣首页所有电影名称、每部电影影评及生成词云

1.爬取环境: window 7 Chrome 浏览器 注册豆瓣、注册超级鹰 2.安装第三方库:安装第三方库: 主程序用到的库有 import sys, time import pytesseract from selenium import webdriver from PIL import Image, ImageEnhance from chaojiying import Chaoji...

退休大叔学Pytnon 2899

python爬虫 豆瓣影评的爬取cookies实现自动登录账号

python爬虫 豆瓣影评的爬取cookies实现自动登录账号 频繁的登录网页会让豆瓣锁定你的账号…… 网页请求 使用cookies来实现的自动登录账号,这里的cookies因为涉及到账号我屏蔽了,具体的cookies获取方法直接可以让浏览器实现自动登录后,在网页请求信息中自己找到。 def askURL(url): head = { "User-Agent": "Mozilla / 5.0(Windows NT 10.0;WOW64) AppleWebKit / 537.36(K

weixin_46173586的博客 1967

python爬取豆瓣影评并写入文件

1.获得豆瓣影评接口 按浏览器F12调试,点开参数,查看url一栏: 所有评论:url:https://movie.douban.com/subject/27119724/comments?status=P 某一页的评论:url: https://movie.douban.com/subject/27119724/comments?start=40&limit=20&sort=n...

CjhLoveAndroid的博客 3575

手把手教你用python模拟登录豆瓣

最近想使用python在豆瓣电影上爬一下电影《教父》的影评,但非登录游客只能查看前10页的影评内容,如果想爬取更多影评,需要先模拟登录豆瓣。 我搜索了很多模拟登录的文章,但我由于欠缺网页方面的知识基础,并没有能够按照其步骤成功模拟登录,后来发现,是模拟登录需要提交的个人信息对应的关键字变了(后面会具体解释)。因此,我整理了一下自己模拟登录成功的详细步骤。 步骤一:安装爬虫所需的requests库 ...

dwarf_dewey的博客 1610

Python登录豆瓣并爬取影评

Cookie是为了交互式web而诞生的,它主要用于以下三个方面:会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)个性化设置(如用户自定义设置、主题等)...

Python中文社区 614

使用python爬取《长城》豆瓣影评

声明:这里参考了这篇博客的代码爬取豆瓣影评时,不能使用最简单粗暴的爬虫策略,因为豆瓣服务器 是有反爬虫机制的。简单的粗暴的方式只能爬取四页就会被禁掉。所以这里必须要使用表头,伪装成使用浏览器进行访问。而且需要使用cookie信息。刚开始使用urllib包来爬取,后来发现困难重重,尽管加了表头跟cookie,但是最多还是只能爬到几百条评论就被禁掉。不知道是因为 表头信息不够还是加的cookie有问

chenpe32cp的博客 4543

爬虫项目实战2——豆瓣电影影评爬取

摘要:实战偏代码,主要使用xpath去匹配和爬取豆瓣的电影影评,并保存到本地的路径内

suners 3144

Python--爬取豆瓣影评①

Python–爬取豆瓣影评① 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录Python--爬取豆瓣影评①前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示

qq_50505152的博客 6421

泛微E9统一待办接口说明

需要第三方表单,在提交自己的流程后,通过【window.location.href=‘oa地址/workflow/request/ViewRequestOS.jsp?需要第三方表单,在提交自己的流程后,通过【window.location.href=‘oa地址/workflow/workflow/WfRefreshList.jsp’】通过中转页面与第三方系统对接,按照第三系统的验证方式开发中转页面中的程序。C)第三方根据相同的数据加密,结果一致就认证成功,打开流程。优点:可以灵活的对接各个系统。

泛微二次开发后端知识总结 6412

python爬取豆瓣影评生成词云的课程设计报告_Python爬取豆瓣影评,生成词云图,只要简单一步即可实现。...

最近看了一部电影《绣春刀》,里面的剧情感觉还不错,本文爬取的是绣春刀电影的豆瓣影评,1000个用户的短评,共5W多字。用jieba分词,对词语的出现频率进行统计,再通过wordcloud生成词云图。今天和小伙伴们一起梳理下具体实现的流程,具体源代码已经上传到NLP小白 公众号中,发送“词云图”,即可获取源代码。先上图为敬,看看豆瓣的网友评论侧重哪个方面。PS:词语出现的频率越多,字体越大具体流程如...

weixin_39622150的博客 1975

从玩具到工业:手把手教你用Webots仿真Scara抓取(逆解实战篇)

本文详细介绍了如何在Webots仿真环境中实现Scara机械臂的逆解计算与抓取操作,涵盖从环境配置、逆运动学算法到轨迹规划与实时控制的完整流程。通过实战案例演示,帮助读者掌握机械臂逆解的核心技术,并应用于工业自动化场景,提升Scara机械臂的编程与控制能力。

weixin_30932215的博客 504

UE 顶点动画工具 (VAT)

导入模型需要勾选全精度UV。

iesoxj的博客 1644

axios取不到cookie_Python登录豆瓣并爬取影评

Cookie是为了交互式web而诞生的,它主要用于以下三个方面:会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)个性化设置(如用户自定义设置、主题等)浏览器行为跟踪(如跟踪分析用户行为等)我们今天就用requests库来登录豆瓣然后爬取影评为例子,用代码讲解下Cookie的会话状态管理(登录)功能。此教程仅用于学习,不得商业获利!如有侵害任何公司利益请及时联系!一、需...

weixin_29682291的博客 290

医疗AI新思路:为什么Graph Neural Network能改善气道分割的漏检问题?

本文探讨了Graph Neural Network(GNN)在医疗AI领域改善气道分割漏检问题的创新应用。通过分析3D UNet等传统方法的局限性,揭示了GNN在图结构建模中的独特优势,特别是在捕捉细小末梢支气管方面的突破性表现。文章详细介绍了UNet-GNN混合架构的设计原理、实验性能对比及优化方向,为CT影像分析提供了新思路。

weixin_30379531的博客 224

html登录界面设计代码_Python登录豆瓣并爬取影评

Cookie是为了交互式web而诞生的,它主要用于以下三个方面:会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)个性化设置(如用户自定义设置、主题等)浏览器行为跟踪(如跟踪分析用户行为等)我们今天就用requests库来登录豆瓣然后爬取影评为例子,用代码讲解下Cookie的会话状态管理(登录)功能。此教程仅用于学习,不得商业获利!如有侵害任何公司利益请及时联系!一、需...

weixin_39520393的博客 493

手把手教你用STM32F103的普通IO口读取SSI编码器(附完整代码与示波器调试心得)

本文详细介绍了如何利用STM32F103的普通IO口读取SSI绝对式编码器数据,提供完整的硬件连接方案、精确时序控制的软件实现及示波器调试技巧。通过低成本方案实现高精度位置反馈,适用于工业自动化和机器人控制领域。

weixin_29172963的博客 453

使用 MATLAB/Simulink 来构建一个基于多能互补的微电网储能系统模型

【摘要】本文详细介绍了基于MATLAB/Simulink的多能互补微电网储能系统建模方法。教程涵盖光伏发电、风力发电、电池储能和负荷模块的搭建,重点讲解了能量管理系统(EMS)的调度策略实现。通过设置传感器监测关键参数,并采用固定步长离散求解器进行仿真,分析了系统在动态工况下的响应特性,包括发电-负荷平衡、储能状态变化及系统稳定性等指标。该建模方法为多能互补微电网的设计与优化提供了有效工具,对提升可再生能源利用效率具有实践指导意义。

MHD0815的博客 191
上一篇: 树莓派-简易的web服务器的实现过程!
下一篇: 使用Qt访问Python Web服务 !
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值