爬虫第九式:豆瓣电影排行榜数据抓取

温馨提示:

爬虫玩得好,监狱进得早。数据玩得溜,牢饭吃个够。

《刑法》第 285 条,非法获取计算机信息系统数据罪。
       违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。

正文:
豆瓣电影排行榜,这个网站,是Ajax动态加载数据的网站,这样的网站有两个特点:

1】 右键 -> 查看网页源码中没有具体数据
【2】 滚动鼠标滑轮或者其他动作时加载,或者页面局部刷新

比如:腾讯招聘、小米应用商店、京东等等都是这样的网站类型
那对于这种网站的话,我们拼接URL地址、查看URL规律、正则和xpath都是没有意义的了,那只能是F12抓包找
我们进入到豆瓣电影网站,找到排行榜点进去:
在这里插入图片描述
我们先看看剧情的排行榜的电影吧:
在这里插入图片描述
然后我们按照步骤一步一步走,先看看源代码中有没有数据:
在这里插入图片描述
很显然是没有的,这个就是Ajax动态加载的特点,那我们就去F12抓包去,打开F12后先刷新页面,然后滚轮先在页面中往下走走,加载出点数据,毕竟最后还是要找URL地址规律的,然后点到XHR里面找数据包,先随便找一个吧:
在这里插入图片描述
我们看这个,哎呀这个是吗???其实不是的,因为刚才我们经过上面的步骤,滚动滑轮,加载数据,那不能就加载出一个吧,所以我们接着往下看:

我们看这个,数据显示的是数字的,这个是不是就是对应上面的什么剧情类总数、我没有看过的、可在线播放的数量
在这里插入图片描述
所以这个也不是,但是有点接近了对吧,我们接着看下一个数据包,因为不知道它页面数据的数据包是哪一个,我们只能一个一个看

这个就是了,我们看到这里面有什么国家、上映时间、电影名字和主演什么的,这个就是响应的JSON数据

在这里插入图片描述
一旦我们在Preview找到了相应的数据,我们就点开Headers进行分析,我们看这个请求方式是正常的GET请求,那URL的地址就是Preview中响应数据的地址,也就是JOSN数据地址

在这里插入图片描述

对于GET请求数据这么多,我们看下面的这个东西 Query String Parameters,这个就是查询参数的意思,这个查看参数就是上面URL地址 ? 后面的东西,就是给你格式化输出了下,然你好看一点

https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=0&limit=20

type=11&
interval_id=100%3A90&
action=&
start=0&
limit=20

在这里插入图片描述所以我们到现在的话,就可以发现一个问题了,就是页面是
POST请求,去找FormData
GET请求,去找Query String Parameters

那我们分析Query String Parameters里的数据规律
在这里插入图片描述
这样我们也不知道是什么,那就对比,我们找下一个数据包对比一下看看,这个
type还是11,可能是电影的类别吧;
interval_id还是100:90;
action还是没变;
start这个变了,它从上一个数据包的0,变成20了;
limit还是20也没变,这个应该是动态加载一次的电影数量吧
在这里插入图片描述

那我们在找一个数据包看看变化的规律,这个没变的还是没变,变了的还是那一个,这样看的话,这个start,下一次变得话就是60了,所以我们找到了规律就是:0、20、40、60…
在这里插入图片描述
而且其他查询参数里面也没有时间戳、也没有加密的,所以我们就直接写代码
那我们先去弄一下URL地址,就是我们之前抓到的JSON数据地址:

https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start=0&limit=20

那我们复制到浏览器看一下是什么样的,这就是那个JSON数据,我们在页面中更好看点,因为我们之前安装的这个插件JSONView,如果不装这个的话,我们打开这个网址的时候可能是乱的,但是数据是对的,就是看着比较乱

这里丢个链接,就是我们安装的步骤,可以安装一下,按照我里面说的走就可以安装
https://blog.csdn.net/Yxh666/article/details/111300868

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨旭华 

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值