️ 易 實戰場景 車
本次字體反爬案例對應的是【易Python脫敏車】點評頻道,該站點使用了字體反爬技術,並且是中文字符反爬,可以重點研究下。
站點地址如下所示(全角字符)
https://dianping.yiche.com/
打開目標站點任意鏈接之後,可以通過開發者工具發現,其文字部分存在大量的混淆字符。
既然已經發現了字體混淆,那接下來我們再夯實一下字符矢量圖相關知識,下載易車的一個字體文件。
字體文件是通過 unicode 編碼,然後對應字體文件。浏覽器實現原理是通過傳遞字符的字節碼,轉換成 unicode 編號,然後在字體文件中找到字體矢量圖,如果沒有字體文件,會在系統自帶的字體中尋找矢量圖。
上圖中 uni6211 對應的就是漢字 我 的編碼。
️ 易 實戰編碼 車
有了多篇字體反爬的經驗,我們很容易發現本次的目標站點使用了固定的字體文件,名稱為
yc-ft.woff
,其中包含了 473 個特殊漢字。
接下來只需要將字體文件編碼和漢字的對一個關系讀取出來即可。
from fontTools.ttLib import TTFont
font = TTFont('fonts/yc-ft.woff')
print(font)
font_map = font['cmap'].getBestCmap()
print(font_map)
網頁響應的源碼格式如下所示:
<em class="iconfont"></em>車也
其中

就是對應的字符,然後
e3d0
對應到字體矢量圖中,對應的是 提 字。
你正在閱讀 【夢想橡皮擦】 的博客 閱讀完畢,可以點點小手贊一下 發現錯誤,直接評論區中指正吧 橡皮擦的第 <font color=red>673</font> 篇原創博客