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