对于爬虫的过程中,最头疼的就是js加密,这是WEB开发者对于反爬用的比较厉害的手段之一,但是这对于我们做爬虫无可避免的需要进行破解的 --冤冤相报何时了唉!
安装pyExecjs
按照官方的说法,我们电脑上必须有执行js的环境(python2用pyv8的比较多,但对于python3却没有好的支持)
比如
pyv8
Node.js
PhantomJS
等吧,毕竟做爬虫的电脑上的环境都比较全
安装也比较简单
pip install PyExecJS
(pyExejs在执行的过程中是可以进行指定运行环境的,需要可以进行查询)
运行使用
Js代码在执行之前需要通过编译才能执行
import execjs
# eval 和 complie 是要构建一个JS的环境
e = execjs.eval('a = new Array(1,2,3)') # 可以直接执行JS代码
print(e)
x = execjs.compile('''
function add(x,y){
return x+y;
};
''')
print(x.call('add', '1', '2')) # execjs.compile用于执行更复杂的js代码
################### 运行结果:################
[1, 2, 3]
12
小结:python在进行对一些有js加密网站得过程中,困难得地方是找到加密实现的过程在哪个地方。可以通过debug,堆栈跟踪,慢慢进行调试。找到js加密得地方执行就十分简单了。
初入爬虫,对于js有着莫名得恐惧,也不知道怎么进行执行得。但是慢慢得过程,解开js加密。
不懂可后台私聊作者。进行交流!
网友评论