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的Django框架中的模版继承

在实际应用中,你将用 Django 模板系统来创建整个 HTML 页面。 这就带来一个常见的 Web 开发问题: 在整个网站中,如何减少共用页面区域(比如站点导航)所引起的重复和冗余代码...

Python3中函数参数传递方式实例详解

Python3中函数参数传递方式实例详解

本文实例讲述了Python3中函数参数传递方式。分享给大家供大家参考,具体如下: 之前在看北理工嵩天等老师的python3的课程,在第五周中老师讲到了函数的调用传递。老师讲了这样一个例子...

Python EOL while scanning string literal问题解决方法

项目中有个定时任务,每天取到一些表数据传到一个外部接口,但是最近总是有异常,今天查了下原因。 首先本地和测试环境测试这个程序都没问题,只有线上环境会在日志中抛出异常,猜测异常主要产生的原...

Python3 批量扫描端口的例子

用法 本脚本用于批量扫描端口 1.在同目录下创建输入文件,属性inputFile为输入文件名 2.属性th为线程数 3.属性port为探测的目标端口 4.属性arg为默认的命令 不推荐...

Python绘制3d螺旋曲线图实例代码

Python绘制3d螺旋曲线图实例代码

Line plots Axes3D.plot(xs, ys, *args, **kwargs) 绘制2D或3D数据 参数 描述...