91原创 【福利】教你解析91porn,轻松下载9999+小视频

编辑:
发布时间: 2020-12-16 13:41:35
分享:

提前说:本文仅提供思路,,不提供网址,不提供代码,更不提供视频

在座的观众应该都知道一个大名鼎鼎的网站:91下载..91porn,因为91porn不是一次两次在CCTV上镜

当你打开91porn的页面时,即使你是个不足18岁的少年,你也会情不自禁的撒谎

上过91porn的老司机也知道,91porn限制了每日观看量,超过10次就不能看了。

之前写过91porn爬虫的技术宅男当然可以破解这个难题。

但是近期91porn对网站进行了反爬虫升级,之前视频链接都是直接在源码中展示了,但是现在已经对标签进行了加密,这也导致了目前大部分的91porn爬虫都失效了。

这里就来说说 怎么破解91porn的加密。

首先来看看strencode函数,找找加载的js内容,就能找到strencode函数在js/md5.js,看看md5.js的内容:

emmm....混淆的js代码,用jsnice反混淆一下看看:

js的可读性比之前强了,但是仍然不够,这时候如果你要开始动手,那么有3个选择:

继续手工替换混淆的名词,直到可读性perfect,然后再用Python重写这个strencode函数;

selenium直接访问网址,获取视频

直接用PyV8/pyexecjs等库去执行strencode函数。

Abbey对JavaScript反混淆/反加密没有太多了解,如果是简单的反混淆,Abbey会尝试去用Python重写,但是这个就算了,因此第一种方法pass

selenium?Abbey一直觉得用selenium写爬虫是件很蠢的事情,太重、太慢了~Abbey可能只会用selenium获取cookies,然后传给requests用,因此第二种方法pass

Abbey最终选择的是第三种方法,使用PyExecjs类库直接执行strencode函数。

PyExecjs库安装PyExecjs

windows在cmd,linux在shell下运行:

pip install PyExcejs

PyExecjs使用

>>> import execjs>>> execjs.eval") #运行函数/方法[u"one", u"two", u"three"]>>> ctx=execjs.compile{... return num1+num2... }... """)>>> ctx.callu"12">>> ctx.call3

瞧?使用PyExecjs运行js多简单

更多PyExecjs的使用,可查看官方Github。

PyExecjs破解91porn加密

上面已经说了PyExecjs的使用,破解91porn的加密就很简单了,无非就是从源码中拿到strencode的参数,然后用PyExcejs调用strencode函数,将获取到的参数传入进去即可得到解密后的video标签内容

需要说明的是:91porn你可能拿到3个参数,但是实际上只有前两个参数是有用的,因此只拿前两个参数并传入即可。

尾声

思路已经提供,有能力的就自己写爬虫吧

相关阅读
热门精选
孩子 皮肤