教程:Python绕过抖音_signature签名,完美采集整站视频、个人视频
优采云 发布时间: 2022-12-13 06:31教程:Python绕过抖音_signature签名,完美采集整站视频、个人视频
目录
前言
分析 (x0)
分析 (x1)
分析 (x2)
分析 (x3)
分析 (x4)
总结
我有话要说
前言
大家好,我是山念,这是我的第三篇技术博文。音乐、小说,这次是视频,也许下次是图片。
文章是当天写的,我自己没做过。
我们要采集网站 是网页版的DY数据:Destination URL
随便选一个博主的视频给采集,饿了找了一个美食博主。
的
分析 (x0)
在网页的元素中,我们可以找到当前视频的跳转链接:
而我观察之后,发现每一个li标签都收录了一条短视频信息:
所以这里一共有13个li标签,我们博主发的视频肯定不止13个吧?我杉念又不是只有几十个粉丝,有什么问题?
我已经猜到这是瀑布模式的加载视频了,我来给大家解释一下。比如你在一个网页上只能看到十条数据,当你拉动网页上的滑块时,它会自动加载一些新的数据。数据像瀑布一样流出,原理很简单,就是当你拉动滑块的时候,会触发JavaScript脚本生成一些新的数据
让我们做一个测试:
当我拉动浏览器的滑块时,数据显着增加,改变了网页上的元素。
这里我再说明一下,网页元素和网页源码的区别:
web 元素:浏览器完成一些 javascript 渲染后的渲染(因此它会发生变化)
网页源代码:服务器发送给我们浏览器的原创数据(浏览器渲染后会成为网页元素),所以原创数据不会改变。
那么 Waterfall 的优势之一是什么?很明显是为了减轻服务器的负载吧?用户想看多少数据就传输多少,而不是一次性加载所有数据!
分析 (x1)
也就是说,我们根本不需要考虑网页的源代码(因为它是不可变的)。已知网页的视频被认为是拉动浏览器的滑块执行JavaScript脚本,然后通过接口将数据传输给我们。
首先我们可以观察到,每个视频后面的一串数字就是视频对应的ID值,前面肯定是不变的。
的
我们直接抓包:
的
根据瀑布流的规律,这个包很容易抓到,因为每次滑动下拉条,都会生成一个新的包,像这样
的
确实这个值是对应的,但是别忘了看上图圈出来的_signature参数,传说中的DY签名加密。其他值是固定值是一些电脑信息,浏览器版本。只有这个_signature是加密的,大家可以手动拉动滑块多抓几个包来对比。
分析 (x2)
好吧,很多人认为我会解密这个参数,但是新版本的DY加密比较混乱,即使我能教你也未必能学会,所以我决定改用另一种方法。
我们当时分析过,只要拉动滑块,就会在网页的元素中加载新的视频素材,并且会出现更多的li标签。
所以我们可以用 selenium 来模拟人拉动滑块,对吧?然后采集到视频的跳转链接请求访问,问题就解决了!
但是得到视频跳转链接有什么用呢?
分析 (x3)
我们先点开视频看看:
的
一下子抓到了视频的源地址,但是这个地址根本就没有任何规律。。。不过经过我上次跟你说的音乐的文章,你应该知道怎么分析了吧,先试试删除这么长时间的一些参数,看看还能不能正常访问。最短的可访问链接是我用红色框起来的链接。
然后..... 还是找不到pattern,不知道怎么生成,而且我也发现这个包之前只是个图片包。
分析 (x4)
继续看网页元素里有没有我们的视频源地址:
的
emmm果然,真希望源码里也有,因为我之前的采集跳转链接用了selenium,已经降低了采集的速度。如果你这里还这么用selenium,速度就太慢了。
的
我没有找到任何东西……按理说,我之前捕获了这个包,它没有 JavaScript 文件。这只是一个图片包。没有理由不存在于网页的源代码中。我会尝试搜索更短一点:
的
说实话,我还是第一次自己动手,边研究边写,纯实战。刚才被这个东西蒙了,它把url编码了,所以看起来很伤眼。
的
好吧,我们只需要采集转到尽可能短的链接。
转码给大家看看:
的
我们只需要红框中的那些。
那么到现在为止,是不是所有的工艺思路都完成了呢?
先用selenium采集去跳转url,然后用requests模块请求跳转url,获取视频源地址,最后请求源地址下载。
总结
这只是一个采集博主的视频,能把采集的所有视频做成一个整体吗?我分析了一下,发现原理是完全一样的……有可能!
我有话要说
您在寻找源代码吗?可惜,我也是第一次做这个东西,我文章写完的时候就是我分析完的时候,我自己没有源码。
——写在纸上的东西总是表面的,从来不知道这件事一定要实践。
如果这个分析还是让一些朋友觉得难,那我再给大家看一个我之前提到的完美采集某宝的另一个案例,selenium部分非常贴合(在我主页联系我),求不要提一下部分,完全没有技术含量,只是两个请求。
文章的字都是现场写的,每一个文章我都会详细解释,所以时间比较长,一般两个小时以上。
原创不容易,再次感谢大家的支持。
① 2000多本Python电子书(主流经典书籍应有尽有)
②Python标准库资料(最全中文版)
③项目源码(四十或五十个有趣经典的手办项目及源码)
④Python基础入门、爬虫、网页开发、大数据分析视频(适合初学者)
⑤ Python学习路线图(告别影响式学习)
```
当然在学习Python的道路上肯定会困难,没有好的学习资料,怎么去学习呢?
学习Python中有不明白推荐加入交流Q群号:928946953
群里有志同道合的小伙伴,互帮互助, 群里有不错的视频学习教程和PDF!
还有大牛解答!
```
最新版本:帝国CMS教程之管理防采集插件
反 采集 插件
反采集插件:随机生成不同规则的采集规则,达到让采集操作更复杂的效果。
1、反向采集函数使用说明:
1、开启防采集功能:“系统”-“系统设置”-“参数设置”-“信息设置”-“启用防采集”
2、添加随机反采集字符:“插件”-“反采集插件”-“管理反采集随机字符”(只要添加即可characters 不显示 Characters 越多反挖矿效果越好)
3.在内容模板需要显示随机字符的地址添加""
补充说明:一般在标签两边加上“”,如:“[!--newstext--]”
2、“反采集乱码管理”操作:
1、登录后台->“插件”->“Anti采集插件”->“管理Anti采集随机字符”,如下图:
2、进入“管理防采集随机字符”界面,如下图:
注:随机字符可以是前台不显示的任意html代码,如:"","
“等待。
【睿智恒联】致力于为湖南本土企业提供优质的互联网解决方案服务。服务内容涵盖:长沙APP开发、长沙电子商务平台建设、长沙配送系统开发、长沙APP外包、长沙OA开发、长沙ERP开发、长沙短信平台、长沙聚合支付、长沙网站建设、长沙小程序开发,长沙微信小程序开发,并提供行业APP开发解决方案服务;更多详情,欢迎咨询睿智恒联!因为专业,所以选择!