• pyv8使用总结


    在使用python爬虫的过程中,难免遇到要加载原网站的js脚本并执行。但是python本身无法解析js脚本。

    不过python这么猛的语言,当然设置了很多方法来执行js脚本。其中一个比较简单的方法是使用pyv8模块。

    用pip下载pyv8模块,也可以百度搜索安装包(使用于windows平台)

    然后就是使用。

    首先导入包:

    import PyV8

    然后创建一个jsContext对象并进入:

    ctxt = PyV8.JSContext()
    ctxt.__enter__()

    然后eval一下想要执行的js的代码,或者包含你需要的js代码的源文件:

    ctxt.eval(jsFile)

    接下来就可以使用这个ctxt来执行js脚本了。主要有两种用途:

      1、调用js中的方法:

      

    #把strEnc绑定到js中的strEnc方法
    strEnc = ctxt.locals.strEnc
    #执行strEnc方法,传入python的参数:params,_deskey,用python接受返回值
    str = strEnc(params, _deskey, '', '')

     2、调用js中的变量:

    #Url是python中的变量
    '''
      例如js文件:
          var a=****;
          var b=****;
          var url=**
      我想动态的取得a和b的值,可以令url='a',得到a的值,url=’b'取得b的值
      这里就不能用locals来寻找,如果用ctxt.locals(Url),则会匹配到js文件中的Url返回给你
        
    '''
    downLoadUrl = str(ctxt.eval(Url))

    这两个方法基本够用,等以后用到其他的方法再来补充。

  • 相关阅读:
    实参和形参
    location对象
    区别 apply,call
    窗体之间的交互(window.opener)
    我的升级脚本总结
    Create elements
    history 对象
    函数参数的属性:callee
    发布app store流程
    【转】如何生成静态页面的五种方案
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/6648719.html
Copyright © 2020-2023  润新知