前言
爬虫的开发过程中,往往需要对JS进行模拟,简单或者通用的还可以在Python中模拟或者找到对应的第三方库,但是复杂的就可能不好实现了。所以Python执行JS语句就是爬虫开发过程中的一个痛点,而能执行JS语句的第三方库常见的有selenium、execjs、PyV8
一、selenium
二、execjs
1.安装
打开CMD控制台输入命令pip install PyExecJS
2.方法
eval()
- 输入参数:source(JS语句)、cwd(路径)
- 返回值:result(语句执行结果)
compile()
- 输入参数:source(JS语句)、cwd(路径)
- 返回值:编译后的对象
call()
- 输入参数:name(要调用的JS方法名称)、*args(方法所需要的参数,可多个)
- 返回值:result(运行方法的返回结果)
模板
- 执行JS语句
import execjs
result=execjs.eval("1+1")
print(result)
- 调用JS方法
import execjs
js=execjs.compile('''function sum(i,j){sum=i+j;return sum}''')
result=js.call('sum',1,2)
print(result)
三、pycharm调用nodejs运行js
在逆向Js时,需要运行js代码,通常是在chrome控制台下运行,nodejs的出现的目的就是要让js脱离浏览器,所以可以通过pycharm调用nodejs来运行调试js函数代码。下面介绍环境配置步骤。
1.安装Node.js
Node.js官方网站 如下图:
- 找到对应自己电脑系统的下载即可。
- 安装好软件后,记得将Node.js添加路径到系统环境变量
-
- 在cmd输入node -v,如下图,即配置环境变量成功。
2.Pycharm配置
- 在Settings - Plugins里边,搜索NodeJS,然后点击下载;
- 在Settings - Plugins里边,搜索java,然后点击下载下图三个插件;
- 在Settings - Languages & Frameworks - Node.js and NPM 里边,配置好前边安装的node.js的路径即可。