当我们爬取一些比较棘手的网站时,往往会涉及到各种各样的加密。但是其实很多加密都是通过js完成的,也就是说我们只要在网页中找到相应的js加密代码,然后复制运行就可以得到加密后的数据。当我们写python爬虫的时候,如果想运行js代码,就可以先写一个js代码得到结果,然后复制传进python去运行,或者是使用今天我介绍的这种全自动的方法。
安装:pip install PyExecJS
这个库可以让我们在python代码中运行js代码,实际运用也很简单,只需要读取代码,然后编译就可以运行调用js代码中的函数,写了个小例子
python代码:
import execjs
def test():
with open("./hello.js", "r") as f:
js_code = f.read()
js = execjs.compile(js_code)
print(js.call("test","shelgi"))
f.close()
if __name__ == '__main__':
test()
js代码:
function test(name){
//console.log("Hello "+name);
return "Hello "+name;
}
//test("shelgi");
有了这个,以后只要把网页的加密算法代码找到然后就可以得到加密后的数据,从而实现爬取更复杂的网站。