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程序中进行编码,之后再传值,就可以很好的解决这个问题

js如何运行python代码_python中执行javascript代码相关推荐

  1. 在Python中执行JavaScript代码并进行数据交换

    闲言碎语不多讲,今天介绍一下Python扩展库pyexecjs. 首先进入命令提示符环境,使用pip安装Python扩展库pyexecjs,瞬间完成: 然后就可以在Python中执行JavaScrip ...

  2. 如何在 Chrome 中执行 JavaScript 代码

    前言 要在浏览器中执行 JavaScript 脚本,首先你的浏览器得支持.现在主流推荐 Chrome 浏览器,也可以使用基于 Chromium的 Edge 浏览器.下面来介绍如何在 Chrome 中打 ...

  3. java运行python脚本_java中执行python脚本工具类详解

    java中执行python脚本工具类,需要jython.jar import java.io.FileInputStream; import java.io.IOException; import j ...

  4. anaconda怎么运行python程序_Python中四种运行其他程序的方式,你知道吗?

    前言 在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32p ...

  5. python结束代码_Python中的退出代码

    The optional argument arg can be an integer giving the exit status (defaulting to zero), or another ...

  6. 别问,问就是我差点在所有浏览器中注入 JavaScript 代码

     聚焦源代码安全,网罗国内外最新资讯! 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为 ...

  7. html js页面加载前执行,Javascript代码在页面加载时的执行顺序介绍

    一.在HTML中嵌入Javasript的方法 1.直接在Javascript代码放在标记对之间 2.由标记的src属性制定外部的js文件 3.放在事件处理程序中,比如: 点击我 4.作为URL的主体, ...

  8. 在进程中执行新代码 execl、execle、execlp、execv、execve和execvp函数

    在进程中执行新代码 execl.execle.execlp.execv.execve和execvp函数 摘要:本文主要讲述怎样在进程中执行新代码,以及exec系列函数的基本用法. 在进程中执行新代码 ...

  9. python画代码-Python教程_Python画Mandelbrot集 代码

    Python教程_Python画Mandelbrot集 代码 作者:Comet 来源: 课课家 www.kokojia.com点击数:278发布时间:2015-06-19 11:17:19 曼德勃罗集 ...

最新文章

  1. SAP RETAIL 如何根据分配表查到根据它创建的采购订单?
  2. nmap扫描局域网存活主机_安全工程师都在用的网络扫描软件,巧用ARP协议发现主机。第二节...
  3. php mysql八大动态w...,PHP+MySQL八大动态Web应用实战
  4. MySQL中获取天、周、月等数据
  5. oracle php
  6. 客户端独立弹出详细的实现过程
  7. 学习笔记10-C语言-小项目-五子棋
  8. mysql 求两列数据组合_mysql – 将两个具有不同列数的查询组合在一起
  9. Dell做RAID配置图文全教程
  10. android的actionbar及菜单机制,Android ActionBar基本使用方法
  11. mysql prepare语法_MySQL prepare语句的SQL语法
  12. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_3_Junit_使用步骤...
  13. 信息和信息技术的概念,发展和应用
  14. 基于R实现统计中的检验方法---方差分析
  15. 15岁黑客Cosmo的堕落历程
  16. 深度学习中的注意力机制
  17. linux启动lighttpd服务,Linux下Lighttpd的安装配置
  18. 如何共享计算机网络,电脑怎么共享网络给手机上网
  19. 台式计算机无线接入,台式电脑可以无线连接wifi吗
  20. CSV文件打开乱码解决方法

热门文章

  1. MATLAB_7-彩色图像【长长的笔记!】车牌放在文章末尾有链接
  2. 网络工程师_记录的一些真题_2005上半年上午
  3. 综述:基于点云的自动驾驶3D目标检测和分类方法
  4. 绝对不容错过:最完整的检测模型评估指标mAP计算指南(附代码)在这里!
  5. 树莓派安装openCV做图像识别
  6. 8个必备的PHP功能开发
  7. linux文件时间属性的详解
  8. IntelliJ IDEA详细配置
  9. 【iOS】控件截图、MP4格式视频流和m3u8格式视频流截取某一帧功能的实现
  10. 编写你人生中第一个机器学习代码吧!