中国裁判文书网全网最新爬虫分析

摘要:
本文主要介绍和交流裁判文书网站爬行规则。我去分析网站主要是因为公司的要求。起初,我查看了网站服务器上的各种卡片。本网站的请求数据通过邮寄方式请求。分析标头,我们可以发现它是一个post请求。请求的表单数据包括param、index、page、order、direction、vl5x、number和guid。显然,param是查询字符串,index是页码,page是页面上显示的数据量,order是排序方法。其中,vl5x、number和guid是js代码加密生成的变量参数。

本文主要介绍交流一下裁判文书网的爬去规则,我主要是因为公司要求而去分析这个网站的,一看是看该网站服务器各种卡,蛋疼。用python的selenium模块去写太麻烦了,做不到大量爬取,迫不得已自己不断研究,终于攻破了该网站的js代码参数

 
中国裁判文书网全网最新爬虫分析第1张
 

思路主要通过python去破解网站js的加密数据。该网站请求数据都是通过post请求的,分析一下header,会发现,它是一个post请求,请求的表单数据包括param、index、page、order、direction、vl5x、number、guid这几个参数。很显然,param是查询字符串,index是页码,page是一页展示的数据量,order是排序方式,其中,vl5x、number、guid是js代码加密生成得可变参数。一次性向对方服务器发送请求后获取相应得数据得。

 
中国裁判文书网全网最新爬虫分析第2张
 
 
中国裁判文书网全网最新爬虫分析第3张
 

现在最关键得是如何解密这三个参数?我主要用得是python得PyV8模块去调度js代码,列出代码中使用得python模块。

 
中国裁判文书网全网最新爬虫分析第4张
 

找一个浏览器里已经用过的vl5x去post ListContent,返回的是remind key,因此这个vl5x值是实时计算生成的。 

到底这个值是怎么计算的呢,既然浏览器能算出vl5x的值,那算法应该隐藏在网页的JS文件中。好吧,继续找,在Lawyee.CPWSW.List.js文件里找到了这段代码:

 
中国裁判文书网全网最新爬虫分析第5张
 

vl5x的值是是用getKey()函数算出来的,而getKey里面传入得参数是你每次登陆网站,自动给你分配得动态cookies而产生得。

 
中国裁判文书网全网最新爬虫分析第6张
 
 
中国裁判文书网全网最新爬虫分析第7张
 

这样我们就可以得到vl5x动态参数。接下来就是比较麻烦得guid参数了,guid其实是一个动态的随机生成参数,附上python代码:

 
中国裁判文书网全网最新爬虫分析第8张
 

然后拿这个guid参数取请求该网站的getcode网址,拿到number参数。

 
中国裁判文书网全网最新爬虫分析第9张
 
 
中国裁判文书网全网最新爬虫分析第10张
 

这样我们三个参数同时拿到,一次性向服务器发送请求,获取数据

 
中国裁判文书网全网最新爬虫分析第11张
 

这样我们就可以直接获取大量的司法文书数据了,展示一下效果

 
中国裁判文书网全网最新爬虫分析第12张
 

大家可以有问题可以和我交流学习,这个技术分享出来,希望可以帮到更多的人。



作者:再敲一串代码
链接:https://www.jianshu.com/p/da54d322ba31
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

免责声明:文章转载自《中国裁判文书网全网最新爬虫分析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Fiddler安装及证书配置教程(Windows)【ODPS】阿里云ODPS中带分区的表操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python实现快捷输入(类似WeGame的一键喊话)

故事背景:   表弟跟我说,他玩游戏玩的不是很好,导致经常被队友互动,但是自己的手速有限,经常在互动中败阵。   因此,尝试做一款小工具,帮助表弟取得和队友互动的胜利! 逻辑设计:   监听键盘上的某个按键   当该按键被按下时,调用数据库(或者远程接口)的数据   将获取到的数据写进Windows的剪贴板   模拟粘贴快捷键(Ctrl + V),将数据文...

python获取教务管理系统的MM照片

前提:你的教务管理系统是明文存储大家的图片,加密的图片就不好弄了... 也就是能够通过浏览器直接访问...技术上就不存在什么问题了...如果是学号存储的就更方便了 然后我们就可以写个小脚本了...其实就是直接url获取然后保存在本地... 第一个python小脚本...练手玩一玩... 如果要效率高可以用多线程... 大家就可以愉快的找到MM的照片啦!...

3Python脚本在linux环境下头文件解释

#!/usr/bin/python到底是什么意思有这句的,加上执行权限后,可以直接用 ./ 执行,不然会出错,因为找不到 python 解释器。 #!/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器。 #!/usr/bin/env python 这种用法是为了防止操作系统用户没有将 pyt...

python3.6+pycharm+robotframework 环境搭建

参考文档:https://www.cnblogs.com/chenyuebai/p/8359577.html, https://www.cnblogs.com/jiyanjiao-702521/p/9235724.html, https://blog.csdn.net/weixin_33829657/article/details/86128739 安装配...

python下载安装requests库

一、python下载安装requests库 1、到git下载源码zip源码https://github.com/requests/requests 2、解压到python目录下: 3、“win+R”进入cmd;依次输入如下代码: C:UsersAdministrator>cd D:softwareITPython27 equests-maste...

Python编程-一个小爬虫工具的实现过程

需求描述: 1,打开网站; 2,获取网站的文件内容; 3,返回保存到文件中; 这里的就用到了多线程的方法 import requests,threading,timedef write_html(url,name): r = requests.get(url) with open(name,'w',encoding='utf-8') as...