1. 使用node.js本地搭建web,运行js,返回解密结果.getValue()函数获取解密结果

 // 创建服务器http.createServer( function (request, response) {// 解析请求,包括文件名var pathname = url.parse(request.url).pathname;// 输出请求的文件名console.log("Request for " + pathname + " received.");cookie=url.parse(request.url).query.split('=')[1]data=getValue(cookie)console.log(url.parse(request.url).query.split('=')[1]);response.writeHead(200, {'Content-Type': 'text/html',});// response.writeHead(200, {'Connection': 'close'});// 响应文件内容response.write(data.toString());response.end();
}).listen(8080);// 控制台会输出以下信息
console.log('Server running at http://127.0.0.1:8080/');

2. js解密:

  • js代码copy过来不能直接使用,getCookie()函数改写成从Python代码中输入变量到js代码中.
  • 立即执行代码修改:(function(ctx){........}{this} 改为window = {};(function(ctx){........}{window} 这样很容易得到列表页

3. Docid的解密:

关键点在于eval(unzip(datalist[0].RunEval));
unzip执行后是这样的:

'$hidescript=String.fromCharCode(+!+[+[]+!+[]+!..省略..[]+!+!+[]])();

这个是立即执行函数,如果使用eval执行的时候,在浏览器中是这样的一段代码:

function anonymous() {setTimeout('com.str._KEY="2c6d7227f85b48ee9af6ce558d92c1b0";',8000*Math.random());
}

表面上com.str._KEY是固定写死了的,但是,在翻页的时候实际上是每一页都重新对_key赋值的

现在的目标是获得这样的的函数,然后执行,对com.str._KEY赋值

但是实际自己操作的时候,在浏览器中执行的时候可以得到这段代码,但是在node中执行的时候会报错,基本是setTimeout没有定义或者callback必须是一个function这样的报错,我自己理解就是,eval()函数在执行的时候,匿名函数里面的setTimeout('com.str._KEY="2c6d7227f85b48ee9af6ce558d92c1b0";',8000*Math.random());本身就是一段字符串,不是一个函数,eval了前一层,内部一层没有把字符串转成代码执行,所偶一才导致的报错(个人理解)

那么怎么办呢?我的思路是,不让这个立即执行函数执行,然后把内层的代码提取出来,手动的执行.

s='$hidescript=String.fromCharCode(+!+[+[]+!+[]+!..省略..[]+!+!+[]])();'.replace('()','')
f=eval(s).toString()
console.log(f)

这样就可以得到匿名函数了:

function anonymous() {setTimeout('com.str._KEY="2c6d7227f85b48ee9af6ce558d92c1b0";',8000*Math.random());
}

通过re,匹配出'com.str._KEY="2c6d7227f85b48ee9af6ce558d92c1b0";'
然后eval('com.str._KEY="2c6d7227f85b48ee9af6ce558d92c1b0";'')
这样对com.str._KEY重新赋值了,最核心的地方就在这里了,很多人也是栽在这了

其他的坑:

其他的还有Base64_Zip没有定义等等,这里的Base64放在立即执行函数里面,按照上面的第二条来处理,调用的时候,使用window.Base64_Zip代替,就不会出现找不到函数的情况了

本文仅供自己学习记录

裁判文书网爬虫Docid解密思路相关推荐

  1. 裁判文书网 爬虫 升级最新版本0.7 更新时间2020-12-17

    接上一篇文件:裁判文书网 爬虫 最新更新2020-08-12  https://blog.csdn.net/myhot/article/details/108046389 本次升级主要已支持写入mys ...

  2. python爬取裁判文书并分析_裁判文书网爬虫攻克

    最近因为公司需要爬取裁判文书网的某一类别文章数据,于是简单研究了一下,发现网站数据全是js加载的,于是想都没想直接用selenium尝试爬取,没想到竟然有selenium都抓取不到的js(刚毕业的py ...

  3. 裁判文书网 爬虫 最新更新2020-08-12

    该程序采用Node模拟人工操作,自动获取页面内容,并将获取的数据保存到excel中(每1000条保存一个文件,可以设置保存的条数).excel文件内容如下图: 声明:本文章是以学习和交流为目的,数据源 ...

  4. python 爬虫 裁判文书网 19年4月更新版

    完整版代码github地址:https://github.com/Monster2848/caipanwenshu 爬虫主体逻辑: import re import time import pymon ...

  5. 2021-04-01裁判文书网数据python爬虫更新下载

    长期持续更新数据 2020-11-08裁判文书网数据python爬虫更新下载添加链接描述 截至3月已从数据库中下载1亿1200万条裁判文书数据,有需要数据的伙伴可以(。・∀・)ノ゙嗨前台QQ7900- ...

  6. 2020-11-08裁判文书网数据python爬虫更新下载

    2020年9月1日更新 文书网2020年8月31日晚更新之后就需要手机注册验证登录了,所以,账号是个问题. 分析 1. 登录 比较简单哦,主要难题是多账号的登录及session的更新维护. 2.其它 ...

  7. 爬虫修正:裁判文书网20200901更新增加登录系统

    爬虫修正:裁判文书网20200901更新增加登录系统 一.登录系统的增加 二.增加登录函数 三.一个比较纠结的地方 一.登录系统的增加 导致需要登录,直接是无法进入了.以往可以直接进入具体的类别如 现 ...

  8. Python爬虫Selenium手动接管Edge爬取裁判文书网“环境污染”数据(Mac环境)

    目标数据:爬取从2007年到2022年,各地级市中级法院历年关于"环境污染"的裁判文书数量. 由于裁判文书网需要登录,Selenium手动接管爬取可避免频繁登录造成的封号风险. S ...

  9. 爬取裁判文书网(一)

    1.裁判文书网地址 http://wenshu.court.gov.cn/ 2.网站分析 (1)网站类型是动态网站. (2)网页源代码中并没有我们想要的页面内容,且引用许多js代码. (3)查看列表页 ...

最新文章

  1. Jetty Groovy AppServer
  2. 关于XAMPP环境配置
  3. LeetCode-链表-24. 两两交换链表中的节点
  4. LoadRunner 技巧之THML 与 URL两种录制模式分析
  5. J - 数塔 HDU - 2084(深搜,记忆化搜索+)
  6. JavaScript: Cookie 详解、实例与应用
  7. 前端学习(2946):vue-cli使用
  8. php mysql 实现原理_php+mysql分页原理实现
  9. 2018上半年软件设计师上午题参考答案
  10. python linux调试_linux怎么调试python
  11. SQL注入工具大比拼
  12. 女神:今天我3倍工资,放假半天 有法可依,我...
  13. jQuery Color Animate (jQuery 颜色变换动画) 插件
  14. ‘今年找工作太难了,真的是卷到我想哭!’,一个疫情就业季下的毕业生艰辛IT求职道路上的经验分享!见识入社会的不容易!
  15. win10 java无法运行_如何解决win10配置jdk之后javac无法运行的情况?
  16. 【优化覆盖】基于matlab粒子群算法优化无人机编队布局求解车载网络通信覆盖优化问题【含Matlab源码 2021期】
  17. 2020-09-08
  18. 银湖网更改手机号那极致糟糕的体验
  19. Vue自定义滚动条niceScroll
  20. CuteFTP上传脚本(VBS)

热门文章

  1. c1语言水平要多久,对普通人来说,一般需要多长时间才能学会一门外语?
  2. python四级是什么水平_大学英语四级相当于高考什么水平
  3. Tomcat6中web项目部署路径webapps和wtpwebapps的区别
  4. 解决pyecharts在pycharm不显示图片
  5. MFC使用Windows API实现U盘插拔检测,获取U盘容量,U盘内容移动删除,开启和关闭U盘以及获取盘符
  6. 预训练模型-词汇表:bert-base-uncased【vocab.txt;共30522个subword】
  7. vue导出excel加一个进度条_vue导出excel遇到的问题解决方法
  8. 用 C语言模拟买猫的过程
  9. 煤矿用计算机,煤矿安全生产中计算机的运用
  10. Mac下安装homebrew(解决error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL)