反爬破解—如何构建Document对象

在反爬道路上,往往很多时候需要去研究JS代码,像各种ajax接口请求加密,碰到这种我们需要分析js代码,找到前端加密函数。经过千辛万苦,终于在浩瀚的js代码中找到了关键的加密函数。为了能够直接在程序当中执行js函数,往往需要把相关的js函数抠出来,添加到程序张,利用JS引擎去执行js函数。本以为大功告成,窃窃自喜。可是执行后傻眼了。。。程序报错:document is unfined。 

这是怎么回事呢?由于js函数当中使用了document对象,而document对象是浏览器引擎的隐含对象,在使用浏览器加载js时会自动构建document对象的。但是不管是python还是java自带的JS引擎并不会构建document对象。这时候你也许会认为,自己定义下document对象不就可以了,但是自定义的DOM对象是个空对象,这样同样会报错,完整DOM树是相当复杂的,如果手动对DOM对象去定义其中变量的话那是不可能的。

这里介绍一种简单直接的方法:通过selenium模拟浏览器去构建DOM树,执行js函数并返回结果

利用selenium构建DOM树并返回结果


1、利用html文件包装JS代码

2、selenium加载html并立即执行加密函数

3、加密函数结果输出到html标签

4、xpath抓取页面标签元素


具体实现持续更新中,敬请期待!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,083评论 1 45
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,591评论 0 21
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,957评论 0 3
  • 0. 写在前面 当你开始工作时,你不是在给你自己写代码,而是为后来人写代码。 —— Nichloas C. Zak...
    康斌阅读 5,552评论 1 42
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,804评论 1 32

友情链接更多精彩内容