過完年,好了,咱們接著更新反反爬蟲系列
至于之前有朋友表示出一下1688呀,x寶的反反爬蟲
說實在的,阿里系的反爬蟲很厲害,我自愧不能搞定。
比如x寶的登錄,用了selenium + chrome的朋友都會遇到滑條拖動驗證失敗的情況
這個就是過不了的,首先會去檢查你的瀏覽器DOM的window.webdriver 來判斷是否是人還是自動化工具
其次還會檢測瀏覽器指紋看你的特征值,然后就是邏輯回歸的算法來判斷是不是爬蟲。
暫時先提這么多
依舊是回顧之前的系列:不吃夾生飯:反反爬蟲系列(一)?zhuanlan.zhihu.com不吃夾生飯:反反爬蟲系列(二)?zhuanlan.zhihu.com
不吃夾生飯:反反爬蟲系列(三)?zhuanlan.zhihu.com
好了,今天我們要研究的是 x車之家的字體反爬蟲
難度: 中等偏上
反爬策略: html頁面通過css替換,::before這個東東,拿到的html是源碼,前端渲染出來的才是所見的。因此在一些關鍵部分字體拿到的是一個code,起到迷惑的意義。
我舉個栗子吧: 小明有頭驢。
那到底是幾頭呢,這個反爬蟲的意義就在這。
反反爬策略:解析出每個code對于的字就ok了
好了,入正題。
需求就定在我們需要去拿汽車的參數配置信息
進入頁面,長醬色的
頁面上看著沒問題對吧
然后看html源碼
并沒有結構化的東西,同時發現數據放在js里,長醬色的
注意我標的紅框里的東西
所以啊,就算突破一些常規的反爬蟲手段,拿到html后,我指的是批量拿到所有車型的配置html后。
解析了js,拿到配置信息。
但是關鍵地方的字體被替換,那搞個毛啊。
所以,接下來我們需要把這個替換再換回來。
因為常規的反爬蟲都是前端反爬蟲,等于讀書時候的習題冊,答案就在習題冊后面。
這時候我就又回到html里去找答案,
這僅僅是 二十多行,就看到這段,看里面覺得有貓膩對吧,
我們把這段js拿出來,格式化一下,就長這樣的
接下來就是耐心的找貓膩咯
完了后發現這樣一段函數
index和item有點刺眼,根據職業習慣,這個應該就是對于的字體
咱們再去搜搜 InsertRule這個關鍵詞,然后找到這個
添加一句 console.log($index$, $temp$)
然后把整段js拿到chrome里,執行一下看看
這不就出來了么
然后從解析出來的數據里,按照index替換就行了。
大體上的思路就是這樣
代碼我就不提供了,偷個懶
這里筆者需要提醒的就是:
x車之家,加載的字體是動態的,同時針對具體的車系加載的字體又是固定的。
因此在采集的時候要注意不同車系加載的不同字體
最后,個人感覺,在字體反爬蟲上,x車之家算是教科書級別的。