CSS常見反爬技術


利用字體

反爬原理

反爬原理:
1、主要利用font-family屬性,例如設置為my-font
2、在HTML里面不常見(不可讀)的unicode
3、在CSS字體(my-font)中將其映射到常見(可讀)到字體,例如數字
4、爬蟲在抓取數據的時候只能抓到unicode,而不是真實的數據

應對措施

1、下載woff字體文件,轉化為tff文件
2、用百度字體編輯器打開tff文件,並確定其unicode與其實際的映射關系
3、將下載的HTML內容按照映射關系替換
4、解析HTML並獲取正確的數據

難點:

有些網站會動態生成woff,這種反爬措施比較難以自動化繞開

利用背景

反爬原理

1、數據利用圖片背景(雪碧圖坐標)展示給用戶,而不是直接文本展示
2、圖片包含一張雪碧圖,數據利用背景偏移量來獲取(雪碧圖坐標)
3、爬蟲在抓取的時候看不到實際值,而只是圖片

應對措施

1、下載雪碧圖,手動檢查數據對應的坐標值
2、找到數據對應的坐標值的映射關系
3、找到映射關系,轉化為真實數據

利用偽類

反爬原理

1、不直接將內容展現到html的元素中
2、通過偽類的content屬性將要展示的值展示出來

例如:鼠標懸浮的時候展示數據

應對措施

1、利用pyppeteer或者selenium這樣的自動化測試工具
2、在頁面上執行下面的JS代碼,即可獲取content
注意:before是偽類,也可能是after

JS代碼:
const el = document.querySelector("類選擇器")
const styles = getComputedStyle(el,'before')
console.log(styles.content)  # 打印數據值


利用元素定位

反爬原理

1、利用絕對定位,將數據用其他符號替換,偏移量
2、替換的符號隨機的
3、如果直接抓取,將抓到錯誤的信息

應對措施

計算出替換的元素偏移量,與被替換的元素相對比,還原實際值

利用字符切割

反爬原理

1、將字符串用標簽分割
2、由於是內聯塊級(inline-block),可以一行展示
3、通常還混淆有不現實的標簽(display:none)

應對措施

1、將內聯塊級標簽的innerText拼接起來
2、注意過濾掉所有的display:none的屬性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM