爬虫小技巧

文章目录

  • 背景
  • PyExecJS
  • 最后

背景

当我们爬取一些比较棘手的网站时,往往会涉及到各种各样的加密。但是其实很多加密都是通过js完成的,也就是说我们只要在网页中找到相应的js加密代码,然后复制运行就可以得到加密后的数据。当我们写python爬虫的时候,如果想运行js代码,就可以先写一个js代码得到结果,然后复制传进python去运行,或者是使用今天我介绍的这种全自动的方法。

PyExecJS

安装: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");

爬虫小技巧_第1张图片

最后

有了这个,以后只要把网页的加密算法代码找到然后就可以得到加密后的数据,从而实现爬取更复杂的网站。

你可能感兴趣的:(python)