zoukankan      html  css  js  c++  java
  • 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))

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

  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    2.5.3 表单过滤器
    2.5.2 子过滤器
    2.5.1 位置过滤器:
    2.4 通过属性来选择元素
    2.3 根据层级查找元素
    2.2.4 元素选择器
    2.2.3 Class选择器
    2.2.2 ID选择器
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/6648719.html
Copyright © 2011-2022 走看看