爬虫之python3用execjs执行JS代码
JS运行环境
Node.js 是Javascript语言服务器端运行环境
安装和配置:https://www.runoob.com/nodejs/nodejs-install-setup.html
测试运行
测试运行JavaScript程序
微软windows操作系统:附件-命令提示符
需进入到js程序的目录下,node命令+js文件名运行程序

调用方法
JS文件
// 函数
function getnow(){
var timestamp=new Date().getTime();
return timestamp;
}
// 变量
var name="12353454";
python调用上面js的函数和变量
import execjs # 读取js文件
with open('js.js', encoding='utf-8') as f:
js = f.read() # 通过compile命令转成一个js对象
docjs = execjs.compile(js) # 调用function方法
res = docjs.call('getnow')
print(res) # 调用变量方法
res = docjs.eval('name')
print(res)
使用execjs必须下载node.js程序,它是js代码运行所依赖的环境
爬虫之python3用execjs执行JS代码的更多相关文章
- execjs执行js代码报错:Exception in thread Thread-1
最近在爬一个js数据加密的网站的时候,出了点问题,困扰了我两天 直接运行js文件的时候正常,但是用execjs运行js代码的时候总是会报错 最后翻了很多博客之后,终于找到了原因:原因是有一个程序在使用 ...
- 17-Python执行JS代码--PyExecJS、PyV8、Js2Py
一.Python执行JS代码--PyExecJS.PyV8.Js2Py 1.1.PyExecJS PyExecJS的优点是您不需要照顾JavaScript环境.特别是,它可以在Windows环境中运行 ...
- selenium常用操作,查找元素,操作Cookie,获取截图,获取窗口信息,切换,执行js代码
目录: 1. 常用操作 2. 查找元素 3. 操作Cookie 4. 获取截图 5. 获取窗口信息 6. 切换 7. 执行JS代码 简介 selenium.webdriver.remote.webdr ...
- WinForm程序执行JS代码的多种方法以及使用WebBrowser与JS交互
方法一 使用微软官方组件Interop.MSScriptControl 1.msscript.ocx下载的地址 http://www.microsoft.com/downloads/details ...
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
HTML代码: <html> <head> <title>HTML中用JS调用OC方法</title> <meta http-equiv=&quo ...
- ASP.NET后台执行JS代码
1. 用Response.Write方法 代码如下:Response.Write("<script type='text/javascript'>alert("XXX& ...
- 在Java中执行js代码
在某些特定场景下,我们需要用Java来执行Js代码(如模拟登录时,密码被JS加密了的情况),操作如下: ScriptEngineManager mgr = new ScriptEngineManage ...
- A标签执行js 代码和跳转
5.执行JS代码: <a href="javascript:js代码">内容</a> ⑥.使用js来实现空链接 写法:<a href="ja ...
- java中执行js代码
要在java中执行js代码,首先明白,java不支持浏览器本身的方法.支持自定义的js方法,否则会报错 先新建一个js文件:jsss.js 内容如下: function aa(a,b){ return ...
随机推荐
- WebSocket协议探究(一)
一 复习和目标 1 复习 上一节使用wireshark抓包分析了WebSocket流量 包含连接的建立:HTTP协议升级WebSocket协议 使用建立完成的WebSocket协议发送数据 2 目标 ...
- 【Transact-SQL】找出不包含字母、不包含汉字的数据
原文:[Transact-SQL]找出不包含字母.不包含汉字的数据 测试的同事,让我帮忙写个sql语句,找出表中xx列不包含汉字的行. 下面的代码就能实现. IF EXISTS(SELECT * FR ...
- c#学习笔记-深度复制 与浅度复制
关于值类型和引用类型: 浅度复制(shallow copy)只复制值类型(char,int )的值,而对于引用类型不会复制,浅度复制可以通过派生于System.Object的MemberwiseClo ...
- 前端开发 Vue -2npm
npm介绍 说明:npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安装.卸载.管理依赖等) 使用npm安装插件:命令提示符执行npm instal ...
- 查看flask中所有的路由信息(同时查看/设置允许的请求方式get、post)
查看flask中所有的路由信息(同时查看/设置允许的请求方式get.post) # -*- coding: utf-8 -*- from flask import Flask app = Flask( ...
- oracle 的普通语法
select sysdate from dual -- 时间 select SYS_GUID() from dual --唯一
- C#中两个List<TModel>中根据指定条件--判断并获取不同数据的数据集合2
方式一:Linq List<Test> list = new List<Test>(); list.Add(new Test { score = 10, name = &quo ...
- FreeRTOS列表和列表项
FreeRTOS中的列表和列表项类似于数据结构中的链表和节点: 相关的文件是list.c和list.h两个文件: List_t列表结构体 具体定义如下: /* * Definition of the ...
- 【转】解决高版本springboot对Velocity不支持
https://blog.csdn.net/sinat_31270499/article/details/82283880 最近在做关于Spring Boot开发的项目,因为项目中要用到Velocit ...
- 基于JQ的记忆翻牌游戏
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...