距离上次搞定某音的字体反爬已经过去很久了,没看过的可以戳这里看看小白也可以看会的破解抖音字体反爬,当时由于技术原因想获取分享页的视频的,弄不了,后来技术跟上了,也变懒了,一放下就大半年过去了。现在决定重新搞下,废话不多说,直接上网址。
1. 找到目标链接
要解析无水印的视频,需要在手机端的个人主页 -> 左上角 -> 以链接的形式分享,这样你会得到类似于这样的链接:http://v.douyin.com/NT5Nck/在 PC 端打开就会自动重定向到这个链接:https://www.iesdouyin.com/sha...
往下拉你就会看到她发表的所有视频了,这些视频就是我们想要的无水印视频。
接下来就是熟悉的一步,打开开发者工具,寻找我们想要的请求。很容易就找到我们想要的请求
2. 寻找加密参数的过程
里面两个可能需要加密的参数,还是老办法,先直接搜索这个需要加密的参数名字:_signature,很容易就找到这个地方
直接下断点 + 刷新网页,你会看到这个
很明显就看到我们想要的两个参数都在这里了,往上寻找他们的生成方式即可。再查看右边的函数调用栈,很轻松就可以看到 signature 参数的生成方式
再往下一个函数调用栈,也可以看到 dytk 的参数,是直接在请求个人主页返回的,不需要加密,这样子就只剩下 signature 参数需要搞了。
现在重新下断点,直接下在 signature 生成的地方,这样方便查看相关函数。
现在临到看 _bytedAcrawler 这个对象怎么生成的了,这里很容易就可以找到它的生成位置
可以看到是一个 require 方法,请求一个文件相关的,但是把鼠标放在这个方法上,并不是我们想到的那个方法,而是他们重写的方法
直接点击进去看即可,接下来就是点击让代码运行下一步,直接跳到我们刚刚看到的函数。
这里看到还需要用到这两个函数,都是小意思
这个对象生成了,基本就完成了,最后加密需要用到的参数就是 视频主页的 id, 这个好办,大功告成。
3. 遇到的问题
将需要的代码扣下来之后,直接使用 python 的第三方库 pyexecjs 运行,会有这个错误
TypeError: Cannot read property 'userAgent' of undefined这个问题好办,因为 pyexecjs 的引擎是 v8,不支持 dom 的,所以自己构建一个 dom 对象即可。像这样就可以搞定了:
现在代码是可以生成我们想要的参数了,但是有时还是得不到数据,群里一大佬说是还需要一个 tac 变量,在这里:
也是在请求个人主页就可以得到,直接使用正则就可以获取,效果图
监于只是练手,里面可能还需要很多别的浏览器的变量没有调试出来,如果有需要的话可以自行调试。
另代码已上传到github:https://github.com/SergioJune...:目前mou音在 PC 端是看不了视频的了,但是在移动端是可以的,所以找出了视频链接,把请求头改成这样就可以了
效果图
最后
公众号很久没有原创更新了,因为最近有点事,现在开学了,时间也开始多了起来,所以现在重新开始更新原创,尽量每周更新两篇文章,文章不局限于逆向,量级爬虫,框架学习和 Python 基础,希望大家喜欢,另外有建议也可以在留言区提出来,让大家一起变好!
扫码查看更多文章
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。