開始水第二篇,哈哈哈
http://match.yuanrenxue.com/match/2
題目是介樣的,老規矩F12,刷新~
這個cookie一看就有問題哈,查看了一會兒再點第2頁,漂亮,提示cookie失效,很明顯嘛,這就是個cookie反爬
清空一下cookie
直接右鍵清除,再次刷新
第一頁的話已經可以看到我們需要的就是這個m的值,第二頁的cookie已經略顯不同
設置cookie的話簡單說一下,你去訪問一個網站,先去A接口設置了cookie然后又去了B接口進行驗證,獲取數據
首先我們需要去訪問A接口去設置cookie
import requests res = requests.get('http://match.yuanrenxue.com/match/2') print(res.text)
然后呢就拿到了這么一串東西,那必然就是設置cookie的js,也就是說我們在這個里面設置了cookie,再去請求就可以了
看到這么多,不要慌,一看就是ob混淆,在這個題目網站的上方有個分析工具,或者自己去下載個ob混淆一鍵還原也可以哈,
然后找到下面ob混淆解析,把這串代碼的js標簽去掉,復制進去,點擊一鍵解混淆
再把下面的復制到webstorm中進行調試,關於webstorm激活可以看上一篇
這樣就看起來很愉快了,也就是200來行的樣子,而且一眼就看到cookie
那就直接來看這個cookie吧,我們需要的是m的值,其他不需要的干掉
然后來看_0x39ba95這個函數,根據前面看到的m的值,這可能是個時間戳
看下在哪里調用
就是個時間戳,接下來看_0x9c88d5這個函數,其實也就是_0x3c2401這個函數
第一段的話有興趣的可以去追一下,最簡單的判斷哈,return的東西第一個沒啥用,第二個后面沒有沒有地方調用的那就應該沒啥用了,有用的話再扣回來就行了
手動滑稽~
所以刪掉這里
這兩行不能干掉的哈,對try那段感興趣的可以把這兩行干掉去看看哈
如果global怎么怎么樣,然后怎么怎么樣,否則怎么怎么樣
然后我們就來看_0x9bdac4這里,可以控制台輸出下,也可以根據剛才m那里的符號去判斷下
return navigator["vendorSub"]; = return ' ';
這里是個定時器,直接干掉
然后代碼就成了這樣
灰常的干凈,這樣就可以直接運行跑起來了
現在只是輸出了值,還需要整合下代碼,合並下,搞下縮進,添加個調用cookie值的函數,然后傳給py程序就行了
開頭的那段一刪,整體往回縮進,多余的符號刪除
最后的console.log()改為
function getcookie() { return _0x58af7c(_0x1805c7()) } console.log(getcookie());
放入python中,爬取效果