Python腾讯视频弹幕抓取实战课件_第1页
Python腾讯视频弹幕抓取实战课件_第2页
Python腾讯视频弹幕抓取实战课件_第3页
Python腾讯视频弹幕抓取实战课件_第4页
Python腾讯视频弹幕抓取实战课件_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Python爬虫》腾讯视频弹幕抓取实战knowledge—黄贵锋爬虫一般步骤以腾讯视频《天行九歌》为例,详细解析腾讯视频弹幕爬取的细节和难点,相对于一般电影或者电视剧评论,弹幕都是在特定剧情下观众随性发出来的,所以弹幕能够贴合剧情,进行更多有意思的脑洞分析。目标数据数据定位打开腾讯是视频《天行九歌》视频随便选取一集,观察我们需要抓取的弹幕,可以明显看出来弹幕不是在视频上的而是浮动在视频上面,而且弹幕在视频播放之后才滚动加载,所以我们大概能得出弹幕是JS异步加载的。按F12审查元素,观察Network是的请求,播放开始后出现了大量请求,除了大部分图片外我们发现了一个比较特殊的请求"danmu",打开这个请求后果然这就是我们要的弹幕数据。弹幕URL规律分析在找网址规律的时候,有一个小技巧,就是尝试暴力删掉目标网址中不影响最终结果的部分参数,再从最精简的网址中寻找规律。我们观察请求参数的时候注意下RequestMethod。这里是get请求也就是可以直接在浏览器请求URL,看能否能拿到数据。开始暴力删除无关参数,URL?后面拼接的参数有callback,target_id,session_key,timestamp,_。网址最后一串数据好像是时间戳,删了试试,结果不变,是无关参数。session_key到底影不影响呢?不知道可以删除试试。最后精简成下面这个URL,只有target_id,timestamp两个是必须参数弹幕URL规律分析将第二,三,四个请求拿出来精简

对比很容易找到规律,从第一页到第二页,timestamp值从15变到了45,第二页到第三页从45到75,target_id不变。这个规律我们可以大胆猜测这个timestamp值是控制页数的,并且起始值是15每30秒更新一次。一集视频弹幕有多少页呢?如何获取最后一个timestamp的值?这里有个小技巧,先将视频拉倒最后观察timestamp的值是多少,然后给timestamp一个远远超出最后这个值到浏览器请求,返回数据为count值为0,说明弹幕已经加载完。不同集之间URL分析第73集精简后的URL

第72集精简后的URL

对比不同集之间的URL发现target_id值是不一样的,猜测这个target_id决定的集数。timestamp规律之前已经找到,这里我们将精力投入到target_id中寻找它的规律,但我们研究了几集之后发target_id除了%26vid%3D这一串其他的毫无规律。那我们现在将target_id分成两半,我将它们称之为前缀ID,后缀ID。但从URL上面我们是找不到有用线索了,这时候我们必须转换思路回到页面上来。后缀ID-1在浏览视频页面的时候,我们发现播放视频时在播放屏右边总会显示全部集数,点击对应的集数就会进行相应的换集跳转,所以我们有理由相信target_id相关的东西就藏在其中。后缀ID-2浏览页面源代码的时候我们发现HTML源码里面有这样一段JS,包含了所有集的后缀ID,从里面面去获取会更好(注意F2是正常的已上线的集,F0可能是脏数据或者是没上线的所以我们只需要去F2的数据即可获取到所有的后缀ID)前缀ID-1遗憾的是前缀ID在页面里面并没有找到,既然页面上没有,那我们再转换下思路。页面上没有那么有可能是点击跳集的时候才请求前缀ID。播放视频F12在不同集之间切换继续观察Network的请求,每次切换不同集的时候有一个请求regist进入了我们得视线点击进去看果然里面有我们需要的前缀ID。前缀ID-2切换不同集观察URL变化,没有什么变化都是同一个URL。

但是我们发现每一集的请求都有一个参数变化vecIdList,仔细一看这不就是我们的后缀ID?(注意这里使用post请求,参数是json格式)

到这里我们

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论