文章 > 其他 > python爬虫为什么要会js代码

python爬虫为什么要会js代码

Python爬虫

头像

小妮浅浅

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电脑。)

关注公众号

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图 底部广告图按钮