Python 爬虫实战 3

目录

抓包方法

Fiddler

Fiddler 工作原理

安装方法

配置 Fiddler 

项目:使用抓包分析获取腾讯视频评论数据

开始抓包分析

抓包过程分析

按照上面流程,每次触发一个页面,观察复制的 url 的规律

代码部分


第三讲:抓包分析技术精讲(课程笔记)

Python 爬虫实战 3_第1张图片Python 爬虫实战 3_第2张图片

抓包方法

方法1: 

进入网页,F12 ---> Network,访问某个网页,出现很多数据包,我们要获取和分析的就是这些数据包【如下图】。

但是这样抓包的缺点:杂内容多,跳转快速,不太好做分析,因此建议用抓包工具。

Python 爬虫实战 3_第3张图片

方法2:抓包工具 fiddler。

--问:抓包工具有许多,为什么选择 fiddler ?

--答:Fiddler 相对比较方便。

Fiddler

Fiddler 工作原理

抓包,即将网络细节展现出来。

正常状态:网页/用户【发请求给】服务器,服务器【响应给】网页/用户。

有 Fiddler 后:网页/用户【发请求给】fiddler, fiddler【再给】服务器。同样,服务器相应也是经过fiddler给网页/用户响应。

所以,Fiddle 相当于一台代理服务器,它的IP地址是127.0.0.1,端口是8888。

Python 爬虫实战 3_第4张图片

安装方法

官网下载:https://www.telerik.com/download/fiddler

自定义目录,按步骤安装即可。

Python 爬虫实战 3_第5张图片

打开软件的窗口界面,左边黑色的部分可以输入各种命令,现在只要知道 clear 清空界面命令。

Python 爬虫实战 3_第6张图片

配置 Fiddler 

课程视频内容有点老了,视频中老师的博文也打不开了。我百度配置的。课程建议 Fiddler 和 某个固定的浏览器绑定设置便于分析,我用的是QQ浏览器。

  1. 打开安装好的fiddle,点击 Tools---Options。
  2. fiddler 默认是只抓取http的,修改一下 HTTPS 设置,可以抓取到https

Python 爬虫实战 3_第7张图片

     3. 设置connection,端口号默认为8888,可修改,但需注意:一是本机空闲端口,二是代理设置时端口保持一致。

我的这个端口提示被 python进程使用,我就随便用了一个端口 8887.

Python 爬虫实战 3_第8张图片

Python 爬虫实战 3_第9张图片

项目:使用抓包分析获取腾讯视频评论数据

Python 爬虫实战 3_第10张图片

Python 爬虫实战 3_第11张图片

随便选一个电视剧,本文选用《清平乐》底下的评论。

Python 爬虫实战 3_第12张图片

看到好多评论。

Python 爬虫实战 3_第13张图片

点击观看《清平乐》,在该页面右击查看网页源代码,搜索网页评论。Ctrl + F 打开搜索框复制一个评论,发现找不到,说明评论被隐藏了,此时不能爬取,必须通过抓包分析。【如下图,,查找结果是0】

Python 爬虫实战 3_第14张图片

开始抓包分析

第一步,暂停视频,清空(clear 命令)fiddler。

第二步,翻评论,出来的就最新的评论信息。

Json 里面一般是文字信息。查看textView。因此,看 “content”信息就是评论数据。

Python 爬虫实战 3_第15张图片

Python 爬虫实战 3_第16张图片

抓包过程分析

(1)查看最先开始的短评 和 当前页面的最底部评论:

Python 爬虫实战 3_第17张图片

一直到

Python 爬虫实战 3_第18张图片

(2)点“查看更多评论”触发评论,出现json信息,自己复制链接,并查看 textview 是否对的上。

Fiddler 中第28个是新触发产生的json文件。

检查触发后的内容是否对的上(接着上页):

Python 爬虫实战 3_第19张图片

fiddler 页面第28的内容是新触发的评论内容,复制该链接:https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6653291461930496749&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999403

Python 爬虫实战 3_第20张图片

(3)查看当前页面结尾内容,再次触发一个页面。

Python 爬虫实战 3_第21张图片

再次触发操作后。

Python 爬虫实战 3_第22张图片

检查对应Fiddler第80 个json 文件,复制链接。

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6653290281292019066&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999404

Python 爬虫实战 3_第23张图片

按照上面流程,每次触发一个页面,观察复制的 url 的规律

观察 url 规律,如果没有规律就需要同时查看 textView 界面,观察相关参数,总之就是找规律,找隐藏的参数。

【1】

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6653291461930496749&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999403

【2】

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6653290281292019066&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999404

【3】

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6654735786308025259&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999405

Python 爬虫实战 3_第24张图片

【4】

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6654045810793234182&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999406

Python 爬虫实战 3_第25张图片

标为红色的部分是变化的部分。在Fiddler 中观察【3】的 “last” 参数如下,估计【3】之后的链接内容,cursor等于后面的内容是"last"的值,如下面链接【4】

-发现变换的部分是cursor【没有规律】 和 最后一个(视频博主说最后一个参数无关紧要,也可以每次+1)。

所以cursor是重要参数。发现last字段中等于该cursor。

所以,可以推论链接【5】的cursor部分是上一个,即【4】的 last的值。

推论链接如下:

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6655033871589428389&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999407

触发新的一页后,查看链接如下,发现和推论一致。

https://video.coral.qq.com/varticle/5041463513/comment/v2?callback=_varticle5041463513commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6655033871589428389&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1589556999407

代码部分

代码很简单,可以参考本人主页的 “Python 爬虫 ?”系列文章的分析模式进行分析编写。若有兴趣可以去我的CSDN资源下载【腾讯视频评论爬虫】。

Python 爬虫实战 3_第26张图片

结果输出:

Python 爬虫实战 3_第27张图片

你可能感兴趣的:(数据相关,#爬虫)