先打開此次的目標網站--淘大象(taodaxiang.com/credit2)python
打開「開發者工具」就自動進入debug,咱們先格式化看看能不能經過重寫函數解決。segmentfault
顯然不是很好解決,因此咱們試試經過「條件斷點」的方法繞過這個反爬。函數
咱們在 3393 與 3395 行右鍵添加「Add Conditional breakpoint」並在出現的對話框中輸入「false」,這個時候無限debbuger的反爬就被咱們繞過了。工具
雖然這裏很快就繞過了反爬可是「條件斷點」有必定的侷限性,這裏推薦一篇文章以供學習,就再也不贅述。學習
segmentfault.com/a/119000001…網站
解決完反爬措施,咱們刷新頁面查看頁面請求,很快就定位到請求接口、加密參數等信息。加密
請求接口:spa
加密參數 sign :debug
經過抓包請求咱們定位到了接口和加密參數,咱們試着經過搜索sign關鍵字定位一下加密位置。3d
經過搜索咱們找到三個包含關鍵字的文件,經過檢索文件,很快定位到了sign值加密的位置:
很明顯這個js文件通過必定程度的混淆,如今有兩種方法解決:
一是直接扣代碼,繞過debugger以後扣這個代碼不要太簡單。
二是通讀加密,直接改寫成python加密。
這個加密比較簡單,總體是md5加密這點經過分析請求能夠猜到,屢次請求加密都不變,接下來就是分析是哪些字段加密成md5值。
這裏比較明顯的是js中的兩段代碼:
_0x2c114b['XDFEp']
這個方法是將字符串拼接
_0x2c114b['zANjZ']
這個方法是取字符串的MD5值
通過斷點調試,發現最後字符串是由「查詢的關鍵字」+ 「固定的key」+ 「查詢的關鍵字」+ 「type參數值」拼接成的。
比對兩種方式,經過python方法改寫更加方便,主要代碼以下:
from hashlib import md5
def md5value(s):
a = md5(s.encode()).hexdigest()
return a
複製代碼
到這裏此次的分析的網站 -- 淘大象 就被咱們攻克了,此次的網站加密不是很難主要難點是分析時的無限debugger,其實其餘同類型的網站還有不少,你們能夠參考文章中提到的方法本身試試~