爱站内页反链 爱站首页反链 神马是否收录 360网站安全检测 搜狗是否收录 360是否收录 百度是否收录 百度年收录 网站年龄 百度安全 百度查询 导出链接 网站ip查询 网站ICP备案批量查询 搜狗快照 百度快照 百度反链批量查询 搜狗PR批量查询 谷歌PR批量查询 神马权重批量查询 360移动权重批量查询 站长移动权重批量查询 爱站移动权重批量查询 360权重查询 站长PC权重批量查询 爱站PC权重批量查询 搜狗总收录批量查询 360日收录批量查询 360总收录批量查询 百度月收录批量查询 百度周收录批量查询 百度日收录批量查询 百度网站收录批量查询 获取网站IP 获取网站描述 获取网站关键词 获取网站标题 HTTP状态码 搜狗权重 搜狗反链 神马总收录 百度预计流量 ALEXA排名 360反链

当前位置 主页 > 网站技术 > 代码类 >

最大化 缩小

    Python利用PyExecJS库执行JS函数的案例分析

    栏目: 代码类 时间:2019-12-18 12:05

      在Web渗透流程的暴力登录场景和爬虫抓取场景中,经常会遇到一些登录表单用DES之类的加密方式来加密参数,也就是说,你不搞定这些前端加密,你的编写的脚本是不可能Login成功的。针对这个问题,现在有三种解决方式:

    ①看懂前端的加密流程,然后用脚本编写这些方法(或者找开源的源码),模拟这个加密的流程。缺点是:不懂JS的话,看懂的成本就比较高了; ②selenium + Chrome Headless。缺点是:因为是模拟点击,所以效率相对①、③低一些; ③使用语言调用JS引擎来执行JS函数。缺点是:每个JS引擎执行的效果会不一致,导致一些小偏差;   第③种方式中,Python语言能利用的库有PyExecJS、PyV8、Js2Py三种,PyV8使用就报错(我暂时没解决),Js2Py相当于将JS翻译成Pyhton,Js2Py对于复杂JS而言非常容易出错。所以本文主要讨论通过Python语言的PyExecJS库(切换不同的JS引擎)来执行JS函数的过程。

    PyExecJS官网案例

    pip 安装:

    pip install PyExecJS

    Demo:

    import execjs
    
    print(execjs.eval("'red yellow blue'.split(' ')"))
    
    ctx = execjs.compile("""
      function add(x, y) {
       return x + y;
      }
     """)
    print(ctx.call("add", 1, 2))

    输出:

    ['red', 'yellow', 'blue'] 3

    查看JS引擎信息

    # 1.在windows上不需要其他的依赖便可运行execjs, 因为默认有个JScript库,如果要运行其他JS引擎库,就需要另外安装了。
     # windows默认执行的JS环境
      execjs.get().name
      #返回值: JScript
     # 如果想要切换,用os.environ["EXECJS_RUNTIME"] = "XXX",如果刚安装完其他JS引擎,必须配置环境变量,还可能需要重启电脑或重启IDE。
     # 如果windows上装有Node.js , 可以切换Node
      os.environ["EXECJS_RUNTIME"] = "Node"
      print(execjs.get().name)
      #返回值: Node.js (V8)
     # 如果windows上装有PhantomJSs , 可以切换PhantomJS
      os.environ["EXECJS_RUNTIME"] = "PhantomJS"
      print(execjs.get().name)
      #返回值: PhantomJS
     
    # 2.在ubuntu下需要安装执行JS环境依赖, 作者的环境为PhantomJS
      execjs.get().name
      #返回值: PhantomJS
     
    # 3.源码中给出, 可执行execjs的环境:
     PyV8   = "PyV8"
     Node   = "Node"
     JavaScriptCore = "JavaScriptCore"
     SpiderMonkey = "SpiderMonkey"
     JScript  = "JScript"
     PhantomJS  = "PhantomJS"
     SlimerJS  = "SlimerJS"
     Nashorn  = "Nashorn"

    安装PhantomJS步骤

    下载地址:

     http://phantomjs.org/download.html 

    拷贝到脚本到你的Python环境里:

    把下载下来的文件解压,找到目录里.\phantomjs-2.1.1\bin\下的phantomjs.exe,移动到使用的python文件夹下的Script中。

    # 举例 Anaconda3
    D:\programfiles\Anaconda3\Scripts

    添加系统变量:


    D:\programfiles\Anaconda3\Scriptsphantomjs.exe添加到系统变量中。


    验证:

    添加环境变量后,在cmd中验证可以使用phantomjs命令,说明环境搭建好了。


    在python中切换成PhantomJS:

    os.environ["EXECJS_RUNTIME"] = "PhantomJS"

    案例1

    1.访问目标网站的登录页面并查看源码

    上一篇: Python字典底层实现原理详解
    下一篇: mysql触发器之触发器的增删改查操作示例
  • 代码类
  • SEO相关
  • 立即下载 - IIS7 站长工具包
    最新 更多<<
  • [代码类]
    详解为element-ui的Select和Cascader添加弹层底部操作按钮
  • [代码类]
    谈一谈数组拼接tf.concat()和np.concatenate()的区别
  • [代码类]
    mac下redis安装、设置、启动停止方法详解
  • [代码类]
    解决fastjson从1.1.41升级到1.2.28后报错问题详解
  • [代码类]
    如何基于Python实现数字类型转换
  • [代码类]
    python中with用法讲解
  • [代码类]
    Spring整合Junit的使用详解
  • [代码类]
    java8之lambda表达式用法总结
  • [代码类]
    Python for循环通过序列索引迭代过程解析
  • [代码类]
    Java并发编程之常用的多线程实现方式分析
  • [代码类]
    webpack的 rquire.context用法实现工程自动化的方法
  • [代码类]
    详解python itertools功能
  • [代码类]
    springboot乱码问题解决方案
  • [代码类]
    vue 检测用户上传图片宽高的方法
  • [代码类]
    C++ 泛型编程详解
  • [代码类]
    JVM常用指令速查表
  • [代码类]
    node爬取新型冠状病毒的疫情实时动态
  • [代码类]
    tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
  • [代码类]
    2019最新21个MySQL高频面试题介绍
  • [代码类]
    使用正则表达式生成随机数据的方法
  • [代码类]
    vue中对象数组去重的实现
  • [代码类]
    最全的VI命令与快捷键大全集合建议收藏
  • [代码类]
    nodejs nedb 封装库与使用方法示例
  • [代码类]
    node.JS事件机制与events事件模块的使用方法详解
  • [代码类]
    Node.JS获取GET,POST数据之queryString模块使用方法详解
  • [代码类]
    使用node.JS中的url模块解析URL信息
  • [代码类]
    Java三种移位运算符原理解析
  • [代码类]
    Java基于Calendar类输出指定年份和月份的日历代码实例
  • [代码类]
    Windows下安装 node 的版本控制工具 nvm
  • [代码类]
    Scrapy框架实现的登录网站操作示例
    推荐 更多<<
  • [实用记录]
    EXCEL 对比A B两列数据是否一致
  • [实用记录]
    BAT 新建文件夹
  • [实用记录]
    收录太慢?请不要病急乱投医!

代做工资流水公司常德办背调流水淮安企业贷流水制作泰安企业对公流水代办汕头流水报价孝感流水查询常德查背调流水徐州企业流水打印制作湖州入职流水价格福州背调工资流水多少钱佛山薪资银行流水公司常州对公账户流水查询重庆流水查询铜陵企业贷流水办理沈阳代办离职证明太原工资流水单代开郑州离职证明图片绍兴签证工资流水代做太原做工资流水账单南通企业对私流水代开济南自存银行流水打印泰州代开签证流水邯郸办签证流水东莞贷款流水模板肇庆公司流水费用三亚在职证明费用金华制作日常消费流水宜昌背调流水打印九江入职工资流水价格威海工资流水账单开具大连办理贷款工资流水香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化