- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
手把手教你如何使用Python执行js代码
????各位小伙伴,大家好,这次我们来说一下关于爬虫方向的一个学问,Python如何执行js,快来看看吧!!!
为什么要引出Python执行js这个问题?
????都说术业有专攻,每个言语也都有本人的特长和短处。在爬虫方向,Python确定是扛把子,近几年随着AI的火爆,需要各种各样的数据,所以,爬虫需求也跟着水涨船高起来。
????我们做爬虫的当然是爬的爽,但是估量人家后台在骂街,到底谁都不期望本人的数据被弄走,所以后台反爬技术也在快速提升,一攻一防就这么在拉锯着。
????现在为了防止反爬,前端使用的反爬技术比较多的是js代码混淆。
什么是js代码混淆?
正常代码
????我们现在看一段js代码,代码规律很简约,就是拼接时间前往。
function formatDate(now) {
var now = new Date(1230999938);
var year=now.getFullYear();
var month=now.getMonth()+1;
var date=now.getDate();
var hour=now.getHours();
var minute=now.getMinutes();
var second=now.getSeconds();
return year+-+month+-+date+ +hour+:+minute+:+second;
}
????
????运转一下这段代码,如下图所示。
混淆代码
我任凭找了个在线的js代码混淆网站。
js代码
function formatDate(mz1){var KkkGDiH2=new window[\x44\x61\x74\x65](1230999938);var tsk3=KkkGDiH2[\x67\x65\x74\x46\x75\x6c\x6c\x59\x65\x61\x72]();var YMreyP4=KkkGDiH2[\x67\x65\x74\x4d\x6f\x6e\x74\x68]()+1;var Ozo5=KkkGDiH2[\x67\x65\x74\x44\x61\x74\x65]();var QMYEc$eD6=KkkGDiH2[\x67\x65\x74\x48\x6f\x75\x72\x73]();var JfXVV_Akq7=KkkGDiH2[\x67\x65\x74\x4d\x69\x6e\x75\x74\x65\x73]();var $mP8=KkkGDiH2[\x67\x65\x74\x53\x65\x63\x6f\x6e\x64\x73]();return tsk3+\x2d+YMreyP4+\x2d+Ozo5+ +QMYEc$eD6+\x3a+JfXVV_Akq7+\x3a+$mP8
????上面这个真的不是我瞎写的,混淆之后就是这样子的,不信看图片。
????可能我们会有个疑问,js代码都成这玩意了,还能执行吗? 答案是确定的。即便js代码格外乱,但还是可以执行的,结果跟上面的是一样的。
????这就形成了一个问题,我们在做爬虫时,假如需要,多多少少可能都要争辩一下js代码,然后进行js解密一下,但是,但是,要是代码都混淆成了这了,还怎样解?
????一点规律都看不通了,基本上不行用Python依据js规律重写出来了...
????很巧,小编也是卡在这里...后来我就想,要是Python能执行js代码就好了,不用管函数里面的规律了,只拿函数前往值就好了。
Python第三方包Execjs
????可能是吧,不止我一个人遇到了这种情况,所以大佬们就开发出来这种工具包,用于执行js代码。
安装
????在安装之前,需要有node环境,这里就不举栗子了,下一步下一步就好了。
pip3 install PyExecJS
Execjs用法超级简约的,几行代码。
执行js
注:由于上述js代码会生成window对象,并不能直接执行成功,需要额外的其他协助,这里简约的举一下其他例子。
正常js代码
function add(x, y) {
return x + y;
}
Python执行js代码
import execjs
ctx = pile(
function add(x, y) {
return x + y;
}
)
print(ctx.call(add, 1, 2))
执行结果如下图所示:
混淆js代码
function add(bi1,Pl$2){return bi1+Pl$2}
Python执行混淆js代码
import execjs
ctx = pile(
function add(bi1,Pl$
您可能关注的文档
最近下载
- 全站仪的坐标放样工程测量74课件讲解.pptx VIP
- 湖北省楚天协作体2024-2025学年高一下学期期中考试语文试题(含答案).docx VIP
- 后续服务承诺及其保障措施.docx VIP
- 2024凉山州专业技术人员继续教育公需科目-《经济思想学习纲要》学习辅导试题及满分答案.docx VIP
- 油库安全设施设计专篇.pdf VIP
- 建筑施工 - 新19J108外墙外保温薄抹灰系统建筑构造.pdf VIP
- 建筑测量工程全站仪坐标放样及坐标测量教程.pptx VIP
- 湖北省楚天教科研协作体2024-2025学年高一下学期期中考试政治试卷 含解析.docx VIP
- 全站仪数据采集坐标放样.doc VIP
- 新药非临床安全性评价.ppt
文档评论(0)