教你用python登录豆瓣并爬取影评

在上篇文章爬取豆瓣电影top250后,想一想既然爬了电影,干脆就连影评也爬了,这样能够看看人们评价的电影,再加上刚出不久的移动迷官3好像挺热的,干脆就爬他吧,爬完看看好很差看!python


进入主题


1.去找目标网页并找到所要找的数据
正则表达式


一进去网页就条件反射打开开发者工具,很容易就看到了这个数据库


鼠标所点的就是我接下来要爬的网站,先看看他的response和请求头之类的信息,他的请求方式时get,response是一个网页结构,这就好办了,咱们就能够用正则来匹配出所要的数据,正则仍是个很好用的东西,请你们务必要学会啊。那接下来就动手敲代码咯!服务器


2.用re+requests获取数据微信


获取信息
session

先把数据写入txt文件中(打开的文件要指定编码为utf-8,要不会出现编码问题,由于window的默认编码方式是gbk,而你的编码为utf-8)
工具

正则表达式和网址
post


一点击运行,只运行了两页,就出了问题,由于这个评论不止两页网站


调试了下,在获取完第二页的时候他返回了个不存在的网页,致使个人正则表达式捕捉不到数据,出现了个空的page,因此就只下载了两页,这应该是被反爬了,继续回网页看看须要加什么请求头,然而我把所有的请求头的信息都加了,仍是没用,这就触及到个人盲区了(尴尬脸),可是我能够百度啊,百度一看,看见有人说模拟登录就能够了,那好,我就来模拟登录一波!!!编码


3.模拟登录豆瓣


首先须要看看登录须要什么参数,这个参数是在豆瓣的登录网址,先打开登录,打开开发者工具(要不会看不到后面这个所须要的网页),填好信息点击登录,而后点击这个login网页,往下拉就会看到From Data 这个框,这个就是登录所要的参数


直接把他们复制过来便可


而后就用post把信息发到服务器完成登录,可是这有个问题,怎么保存登录信息呢?这就须要用到Session()来保留了,可是注意,只须要创建一个会话信息就能够了,不是每一个都用这个方法,我初学时就是犯这个错误以致于我搞了好久尚未登录成功。代码以下

而后用这个post上去,注意!注意!注意!post的网址是登录网址,不是你要爬的网址,我刚学时也是被这个坑了好久(怎么感受我不少问题),还有其余用requests的都须要替换成self.ssession()

最后这样

大功告成,因为只能获取500条这是由于豆瓣只开放了500条评论信息,多一条都不愿给


4.登录多了须要填验证码


因为我屡次登录注销,而后我就须要填验证码了,然而这仍是难不到我,仍是分析网页找出验证码图片而后下载下来本身填写,尚未那些大佬那么厉害能够用人工智能来填写,代码以下


还有将数据保留到数据库,我就不贴了,代码和上篇文章的差很少


经过这个我学会了使用session来保存会话信息来登录简单网页,还能够填写验证码,本身仍是以为有点高大上的,嘻嘻。因为本人还没学数据分析,就只能到这里,而生成词云也有点不会,直接复制粘贴来无趣,因此就先不写了,等大神你来写吧!


最后很是感谢你看完了个人文章,若是以为有用能够点赞,转发哈!若须要完整代码在微信公众号平常学python后台回复影评便可,若须要python相关的电子书也能够回复pdf得到,往后还会有更多福利发给你


上一篇文章: python使用requests+re简单入门爬虫


平常学python


1802054148.png

一个专一于python的公众号

相关文章
相关标签/搜索