python中执行javascript代码
python中执行javascript代码:
1、安装相应的库,我使用的是PyV8
2、import PyV8
ctxt = PyV8.JSContext()
ctxt.enter()
func = ctxt.eval('''需要执行的javascript代码''')
#需要注意的是里面写的function函数需要用()括起来
例如:
import PyV8
class Test():
def js(self):
ctxt = PyV8.JSContext()
ctxt.enter()
func = ctxt.eval('''(function(){return '###'})''')
print func()
print '213'
if __name__ == '__main__':
crawler = Test()
crawler.js()
输出的结果是:
>>>
###
213
>>>
3、向js代码中传递参数的方法
func = ctxt.eval(''' (function(a){return encodeURIComponent(a)})''')
print func(a)
#a是需要传递的参数,encodeURIComponent是js中的一种编码方式
#我遇到这个问题是在做爬虫的时候,进行post传值的过程中,一些中文字符被网站的js使用encodeURIComponent进行了编码
导致不能提交可识别的代码,所以想到这个办法在python程序中进行编码,之后再传值,就可以很好的解决这个问题
python中执行javascript代码的更多相关文章
- pyv8的安装和使用:python中执行js代码
pyv8 的作用是在python中执行js代码,然后可以使用js里的变量等内容.python取得javascript里面的值.javascript取得python里面的值.python和javascr ...
- JAVA中执行JavaScript代码并获取返回值
JAVA中执行JavaScript代码并获取返回值 场景描述 实现思路 技术要点 代码实现 测试方法 运行结果 改进空间 场景描述 今天在CSDN上偶然看到一个帖子对于一段字符串 “var p=‘xx ...
- UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv
原文:UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) ...
- UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等)
UWP 中使用 WebView 时可以在网页中额外执行一些代码.于是你几乎可以在网页上做任何事情,那些你可以在浏览器控制台中做的事情. 本文将介绍做法. 本文内容 准备环境 执行 JavaScript ...
- 尚学堂 215 在java中执行JavaScript代码
package com.bjsxt.test; import java.io.FileReader; import java.net.URL; import java.util.List; impor ...
- Selenium2(WebDriver)中执行JavaScript代码 (转)
在用selenium编写web页面的自动化测试代码时,可能需要执行一些JavaScript代码,selenium本身就支持执行js,我们在代码中可以使用executeScript.executeAsy ...
- 在delphi中执行javascript代码
有时做项目难免用到代码交叉调用,delphi中执行js就是一种,两种方法可用: 一.使用webbrower,比较麻烦 二.使用ScriptControl,简单方便: 1.首先 uses ComObj; ...
- java util - 在java代码中执行javascript代码工具 rhino-1.7.7.jar
需要 rhino-1.7.7.jar 包 代码示例: package cn.java.mozilla.javascript; import org.mozilla.javascript.Context ...
- C#执行javascript代码
最近在做网站自动登陆小工具,遇到技术屏障.密码在submit时会使用js进行加密.这时我需要模拟这个加密过程,想到使用C#执行javascript代码. 对于执行javascript代码,纯代码方式使 ...
随机推荐
- Java中jar命令详解
做项目的时候我们肯定接触过很多jar包,那么jar包是什么呢?笔者了解到jar是java archive file 的简写.从名字就可以知道,它的应用与Java息息相关.下面就详细介绍如何自己生成ja ...
- Fliptile
开关题 尺度法 Fliptile Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3394 Accepted: ...
- Web Navigation
Description Standard web browsers contain features to move backward and forward among the pages rece ...
- linux:ifconfig命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...
- BZOJ 1441
1441: Min Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 467 Solved: 312[Submit][Status][Discuss] De ...
- 用VS2015打开cshtml识图文件的时候会报错 如指定的文件不存在
用vs2015打开cshtml识图文件的时候会报错.百度后得到解决方法如下: 先关闭VS2015, 拷贝:%LocalAppData%\Microsoft\VisualStudio\14.0\Comp ...
- css3 边框记
css3 边框 border属性在css1中就已经定义了,使用它可以设置元素的边框风格,边框颜色以及边框粗细. border-width:设置元素边框的粗细. border-color:设置元素边框的 ...
- 最新app源码下载:200款优秀Android项目源码
200款优秀Android项目源码!菜鸟必备!Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用.其中也有许许多多的开发者提供了应用开源项目,贡献出他 ...
- Android 开机自启动应用
Android启动时,会发出一个系统广播 ACTION_BOOT_COMPLETED,它的字符串常量表示为 “android.intent.action.BOOT_COMPLETED” 开机自启动程序 ...
- maven入门程序(二)
这里就使用myeclipse简单创建一个实例程序. 一.创建项目 在myeclipse中创建项目选Maven Project,然后直接下一步用默认的项目空间.在archetype中选择quicksta ...