文书网-破解反爬思路详解

作者: 极致简洁 | 来源:发表于2017-11-22 10:15 被阅读492次

作为爬虫er,与网站建设人员的斗智斗勇是一定会经历的,那么,作为立志于成为专业数据抓取人士的博主我也不例外。今天,我们就来简单说说如何抓取法律文书网的数据。
首先,介绍下这个网站,如网址名,它是一个专门共享各类法律文书的网站。全国各地的判决书均可以在这个网站上找得到,并提供下载功能。这次之所以选择它作为目标,也是因为它的反爬策略为低级~中级,难度适中,符合我的目标预期。
好了,开始破解工作,首先,使用抓包工具,我们可以发现,只要获取如下几个参数的来源,我们就可以直接获取到PC端Json数据。


抓包图

观察了下,问题集中在最后三个参数,number 、guid和vl5x。
guid是页面内的js生成的,所以大家只要再js里面搜索该关键字,即可找到生成的规则,并改写成python版即可。而number则是通过带guid的post请求向服务器端获取值,这个也不是难点。
vl5x,这个才是真正的难点,接下来,我就简单讲下思路。
一开始页面源码搜了下,没找到。然后,我的视线转向cookies,会不会是cookie里面自带的呢?于是一看,这还有个值挺像的,又用这个在页面上一搜,还真有!


cookie截图

不过这时候,傻眼了。这一串js是啥呀,感觉能写出这种代码的一定是机器人!求助了下谷歌,果然,是js源码的pack操作,我的理解是再转码。


js源码

至于如何给解码呢,请大家谷歌相关教程,最后,上爬出来的数据截图。


image.png

爬虫漫漫路,近期会继续研究js和爬虫搜索引擎相关的技术。

相关文章

网友评论

  • 玩阿轲睡妲己:写的挺好,啪啪啪。
    不过这个网站难点不是参数,是IP和验证码
  • cc4282fa0040:请问v15x参数怎样利用在线解密工具解密呢?不太会使用,麻烦能不能说一下呢?直接将网页中getkey()函数的代码复制进去似乎解不出来
    极致简洁:@Tang_d568 对的
    cc4282fa0040:@极致简洁 现在的getkey函数是这样的:
    var aaaafun = function (p, a, c, k, e, d) { e = function (c) { return……
    eval(aaaafun('7 8(2,4,3){5 6=3.9(\'|\');……
    eval(de("{15}un{12}tion {4}str) {……
    我用解码工具翻译后第一个eval结果是function de(str,count,strReplace){var……这样的,那接下来是用这个结果替换第二个eval中的de吗?
    刚刚接触python,多谢大神。
    极致简洁:@Tang_d568 getkey函数按照顺序单步打印,并把上一步翻译好的程序段也加入到程序中,作为下一步的前置程序段。
  • 6093c022e555:cookie中vjkl5的值也是一直变动的,他这个是怎么做的呢?
    极致简洁:@xinhuiyang 这个是从服务器拿的,服务器端如何变化我们不需要纠结,失效后,写个逻辑重新取即可。
  • gxy0451:hi,大神,您好,关于这3个值我也都得到了,可是请求的结果总是remindkey,不知道您是怎么处理的?我先获取的cookie,获取vjkl5,然后获取guid,number,和vl5x,但就是没有结果,希望您能解答一下,多谢。
    极致简洁:@gxy0451 加qq群问吧187755157
  • 小张Python:白说
    极致简洁:哈哈,没直接上代码,只给思路。对于没有一定自学能力的人,的确等于白说。

本文标题:文书网-破解反爬思路详解

本文链接:https://www.haomeiwen.com/subject/ltfnvxtx.html