中國裁判文書網全網最新爬蟲分析

本文主要介紹交流一下裁判文書網的爬去規則,我主要是由於公司要求而去分析這個網站的,一看是看該網站服務器各類卡,蛋疼。用python的selenium模塊去寫太麻煩了,作不到大量爬取,無可奈何本身不斷研究,終於攻破了該網站的js代碼參數python

 
 

思路主要經過python去破解網站js的加密數據。該網站請求數據都是經過post請求的,分析一下header,會發現,它是一個post請求,請求的表單數據包括param、index、page、order、direction、vl5x、number、guid這幾個參數。很顯然,param是查詢字符串,index是頁碼,page是一頁展現的數據量,order是排序方式,其中,vl5x、number、guid是js代碼加密生成得可變參數。一次性向對方服務器發送請求後獲取相應得數據得。算法

 
 
 
 

如今最關鍵得是如何解密這三個參數?我主要用得是python得PyV8模塊去調度js代碼,列出代碼中使用得python模塊。瀏覽器

 
 

找一個瀏覽器裏已經用過的vl5x去post ListContent,返回的是remind key,所以這個vl5x值是實時計算生成的。 服務器

到底這個值是怎麼計算的呢,既然瀏覽器能算出vl5x的值,那算法應該隱藏在網頁的JS文件中。好吧,繼續找,在Lawyee.CPWSW.List.js文件裏找到了這段代碼:cookie

 
 

vl5x的值是是用getKey()函數算出來的,而getKey裏面傳入得參數是你每次登錄網站,自動給你分配得動態cookies而產生得。函數

 
 
 
 

這樣咱們就能夠獲得vl5x動態參數。接下來就是比較麻煩得guid參數了,guid實際上是一個動態的隨機生成參數,附上python代碼:post

 
 

而後拿這個guid參數取請求該網站的getcode網址,拿到number參數。學習

 
 
 
 

這樣咱們三個參數同時拿到,一次性向服務器發送請求,獲取數據網站

 
 

這樣咱們就能夠直接獲取大量的司法文書數據了,展現一下效果ui

 
 

你們能夠有問題能夠和我交流學習,這個技術分享出來,但願能夠幫到更多的人。

做者:再敲一串代碼 連接:https://www.jianshu.com/p/da54d322ba31 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。
相關文章
相關標籤/搜索