Python执行JS代码

2,906 阅读2分钟

前言

爬虫的开发过程中,往往需要对JS进行模拟,简单或者通用的还可以在Python中模拟或者找到对应的第三方库,但是复杂的就可能不好实现了。所以Python执行JS语句就是爬虫开发过程中的一个痛点,而能执行JS语句的第三方库常见的有selenium、execjs、PyV8

一、selenium

参考文章:爬虫的一个重要的第三方库: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的路径即可。

3.然后就可以使用Pycharm去运行js文件了。

后续更新中……