PornHub在线视频接⼝逆向
PornHub用得造句 的部队班总结 免费视频登录后是可以直接下载的,且链接就直接放在源代码⾥,我们只需要在请求中带上Cookies即可下载。但收费视频只⽀持在线观看,如果免费⽤户要下载到本地,就需要找到在线播放对应的⽂件链接。
查找"cv."关键词,发现它只在id="player"标签下的⼀⼤段script⾥出现了,这段script的前⼗⼏⾏,定义了⼀个变量,可以读出描述了⼀些此视频的元信息;⽽后就是超长且⽆分
⾏的⼤段定义,这种⼈为的可读性障碍⼀般就意味着⾥⾯有⼲货。搜索关键字(⽐如720p,1080p这种分辨率),发陕西特色美食小吃 现定位到的⽂本是这样的:
varquality_1080p=/*+ravbmd0slra75ravbmd0slra75+*/rahttpscra100rahttpscra100+/*+ra8a47lxizkra10ra8a47lxizkra10+*/ravphncdnra87ravphncdnra87+/*+ravbmd0slra75ravbmd0slra75+*/racomvideora70racomvideora70+
...中间略
+rajizy4aof8ra97rajizy4aof8ra97+/*+rahiuxvgjbdra31rahiuxvgjbdra31+*/rait5pb7qvra34rait5pb7qvra34+/*+ravphncd属羊的几月出生最好 nra87ravphncdnra87+*/rafrdzfusijra70rafrdzfusijra70+/*+ravkr6lm0dlra94ravkr6lm0dlra94+*/rapd8628sljra94rapd8628sljra
ViewCode
是⼀个字符串拼接,只是写了⼤量注释来混淆视听,⽽涉及到的拼接变量,经查找正好在此段⽂本之前的内容做了定义,⾄此有⼀些js基本功的就可以写⼀个下载脚本了。
但如果要⽤Python写爬⾍怎么办?execjs和py2js这样的库是⼀个可考虑的选项,但此类库往往有执⾏速度慢和环境配置坑多的问题,并且笔者在实际使⽤过程中,还发现js语句
中某些符号会导致此类库解析抛出异常。事实上Python与JavaScript在某些基础语法上是很相近的,我们完全可以把js语句转化为P歌曲用英语怎么说 ython语句执⾏。
defgetpornaddr(content:fulSoup):
script=_one('#player').script
ifnotscript:return'error'
el:
script_text=()
#根据变量命名特性划定有⽤的script范围
begin=script_("tvarra")
end=script_("varquality_")
valid_zone=script_text[begin:end].replace('var','').strip()#Python⽀持末尾分号,所以不需处理,只把var字胎菊泡水喝有什么功效 样去掉即可,现在已经是Python的变量定义式了
exec(valid_zone)
#exec⽅法能把字符串当做语句执⾏,⽆论在js还是Python⾥,exec都是⼀种挺危险的⾏为,要谨慎使⽤
generate_addr=(r'varquality_[dw]+=(.+?);',清炖鸡肉 script_text).group(1)
#⽤正则表达式定位到下载链接的运算式
ge西游记手抄报简单好看 nerate_addr=(r'/*.+?*/','',generate_addr)#去混淆⽤注释语句
returneval(generate_addr)#eval只能计算表达式的值
⾄此便得到了视频真正的下载地址关于朋友的作文 。
更新:⽬前⽹站增加了⼀步验证,即需在最后⼀步⽤真实地址请求时带上⼀个Referer头部,这个referer的值即为地址X的分段ba64编码拼接,地址X在视频页的源代码⾥,名
为linkProxyUrl,具体分析⽅法同上⽂,不再赘述。
本文发布于:2023-04-15 13:26:44,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/89/831933.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |