程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

中文字體反爬,易易易易易易【Python脫敏】車車車車車車車車

編輯:Python

️ 易 實戰場景 車

本次字體反爬案例對應的是【易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=&quot;iconfont&quot;>&#xe3d0;</em>車也

其中 &#xe3d0; 就是對應的字符,然後 e3d0 對應到字體矢量圖中,對應的是 提 字。

 你正在閱讀 【夢想橡皮擦】 的博客 閱讀完畢,可以點點小手贊一下 發現錯誤,直接評論區中指正吧 橡皮擦的第 <font color=red>673</font> 篇原創博客



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved