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代码的更多相关文章

  1. pyv8的安装和使用:python中执行js代码

    pyv8 的作用是在python中执行js代码,然后可以使用js里的变量等内容.python取得javascript里面的值.javascript取得python里面的值.python和javascr ...

  2. JAVA中执行JavaScript代码并获取返回值

    JAVA中执行JavaScript代码并获取返回值 场景描述 实现思路 技术要点 代码实现 测试方法 运行结果 改进空间 场景描述 今天在CSDN上偶然看到一个帖子对于一段字符串 “var p=‘xx ...

  3. UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv

    原文:UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) ...

  4. UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等)

    UWP 中使用 WebView 时可以在网页中额外执行一些代码.于是你几乎可以在网页上做任何事情,那些你可以在浏览器控制台中做的事情. 本文将介绍做法. 本文内容 准备环境 执行 JavaScript ...

  5. 尚学堂 215 在java中执行JavaScript代码

    package com.bjsxt.test; import java.io.FileReader; import java.net.URL; import java.util.List; impor ...

  6. Selenium2(WebDriver)中执行JavaScript代码 (转)

    在用selenium编写web页面的自动化测试代码时,可能需要执行一些JavaScript代码,selenium本身就支持执行js,我们在代码中可以使用executeScript.executeAsy ...

  7. 在delphi中执行javascript代码

    有时做项目难免用到代码交叉调用,delphi中执行js就是一种,两种方法可用: 一.使用webbrower,比较麻烦 二.使用ScriptControl,简单方便: 1.首先 uses ComObj; ...

  8. java util - 在java代码中执行javascript代码工具 rhino-1.7.7.jar

    需要 rhino-1.7.7.jar 包 代码示例: package cn.java.mozilla.javascript; import org.mozilla.javascript.Context ...

  9. C#执行javascript代码

    最近在做网站自动登陆小工具,遇到技术屏障.密码在submit时会使用js进行加密.这时我需要模拟这个加密过程,想到使用C#执行javascript代码. 对于执行javascript代码,纯代码方式使 ...

随机推荐

  1. Java中jar命令详解

    做项目的时候我们肯定接触过很多jar包,那么jar包是什么呢?笔者了解到jar是java archive file 的简写.从名字就可以知道,它的应用与Java息息相关.下面就详细介绍如何自己生成ja ...

  2. Fliptile

      开关题   尺度法  Fliptile Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3394   Accepted:  ...

  3. Web Navigation

    Description Standard web browsers contain features to move backward and forward among the pages rece ...

  4. linux:ifconfig命令

    许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...

  5. BZOJ 1441

    1441: Min Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 467  Solved: 312[Submit][Status][Discuss] De ...

  6. 用VS2015打开cshtml识图文件的时候会报错 如指定的文件不存在

    用vs2015打开cshtml识图文件的时候会报错.百度后得到解决方法如下: 先关闭VS2015, 拷贝:%LocalAppData%\Microsoft\VisualStudio\14.0\Comp ...

  7. css3 边框记

    css3 边框 border属性在css1中就已经定义了,使用它可以设置元素的边框风格,边框颜色以及边框粗细. border-width:设置元素边框的粗细. border-color:设置元素边框的 ...

  8. 最新app源码下载:200款优秀Android项目源码

    200款优秀Android项目源码!菜鸟必备!Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用.其中也有许许多多的开发者提供了应用开源项目,贡献出他 ...

  9. Android 开机自启动应用

    Android启动时,会发出一个系统广播 ACTION_BOOT_COMPLETED,它的字符串常量表示为 “android.intent.action.BOOT_COMPLETED” 开机自启动程序 ...

  10. maven入门程序(二)

    这里就使用myeclipse简单创建一个实例程序. 一.创建项目 在myeclipse中创建项目选Maven Project,然后直接下一步用默认的项目空间.在archetype中选择quicksta ...