python爬虫为什么要会js代码
小妮浅浅
2021-03-29 11:07:51266浏览 · 0收藏 · 0评论
遇到许多JS代码,比如某些参数加密,这些代码可以用Python单独翻译,但有时代码很难读懂。所以要想爬虫用的好,js代码的学习是比较重要的。
1、说明
使用爬虫时,经常会遇到JS处理网页请求数据,尤其是模拟登录时,可能会有加密请求。目前大部分前端JS代码混淆,可读性极低。了解代码逻辑需要很多时间。这个时候不要急着用Selenium暴力解决。毕竟Selenium严重降低了爬虫效率。我们可以尝试使用一些第三方库,直接执行前端JS代码,得到处理后的结果。
2、安装
虽然这个库导入名是import execjs,但是安装名却不是。安装方式如下:
$ pip install PyExecJS
3、实例
>>> import js2py >>> add = js2py.eval_js(""" ... function add(x, y) { ... return x + y; ... } ... """) >>> add # 可以看到大括号里已被转译 'function add(x, y) { [python code] }' >>> add(1, 2) 3 >>> # 使用下边这个方法可以输出转译后的代码 >>> # 可以保存到文件里,下次不需要再次转译 >>> print(js2py.translate_js('var x = 1')) from js2py.pyjs import * # setting scope var = Scope( JS_BUILTINS ) set_global_object(var) # Code follows: var.registers(['x']) var.put('x', Js(1.0))
以上就是python爬虫要会js代码的原因,毕竟在获取数据的时候,不可避免的会接触到js代码。爬虫在采集大量数据的时候,使用HTTP代理IP配合会比较便捷。希望对大家有所帮助。更多常见问题解决:爬虫
(推荐操作系统:windows7系统、Python 3.9.1,DELL G3电脑。)
关注公众号,随时随地在线学习