python使用PyV8执行javascript代码示例分享

yipeiwu_com6年前Python基础

安装相应的库,我使用的是PyV8

需要注意的是里面写的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
>>>

向js代码中传递参数的方法

复制代码 代码如下:

  func = ctxt.eval(''' (function(a){return encodeURIComponent(a)})''')
        print func(a)

a是需要传递的参数,encodeURIComponent是js中的一种编码方式

我遇到这个问题是在做爬虫的时候,进行post传值的过程中,一些中文字符被网站的js使用encodeURIComponent进行了编码导致不能提交可识别的代码,所以想到这个办法在python程序中进行编码,之后再传值,就可以很好的解决这个问题

相关文章

Python实现判断给定列表是否有重复元素的方法

Python实现判断给定列表是否有重复元素的方法

本文实例讲述了Python实现判断给定列表是否有重复元素的方法。分享给大家供大家参考,具体如下: 题目很简单,只是简单温习一个方法,most_common,这是collection模块中...

用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试

用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试

MapReduce与HDFS简介 什么是Hadoop? Google为自己的业务需要提出了编程模型MapReduce和分布式文件系统Google File System,并发布了相关论文...

Tensorflow环境搭建的方法步骤

Tensorflow环境搭建的方法步骤

What? 我们需要通过VMware虚拟机平台+Ubuntu虚拟机+安装pip的方式来搭建TensorFlow的环境。 官网参考文档地址:https://www.tensorflow.o...

Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍

Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍

1. 添加一个新对象 前面介绍了映射到实体表的映射类User,如果我们想将其持久化(Persist),那么就需要将这个由User类建立的对象实例添加到我们先前创建的Session会话实例...

在CMD命令行中运行python脚本的方法

在CMD命令行中运行python脚本的方法

网上给出了各种方法,都无碍乎先切换到Python脚本所在目录,然后输入Python脚本名称并回车,本文这里给出了更简便的方法。 方法一: 进入Python脚本所在的文件夹,shift+右...