字體加密 | 字體加密初認識

字體加密 | 字體加密初認識

字體加密初認識

很多網站都使用了字體庫對數據進行加密,即頁面源碼中的數據與顯示出來的數據不一樣。html

實現的效果和昨天發佈的那篇關於 X 薯中文網的效果相似,可是原理大不相同。web

Python爬蟲進階必備 | X薯中文網加密分析ide

在字體加密的網站中用戶也是沒法直接進行復制網頁內容的。svg

目前有使用字體加密的網站大概有下面這些:字體

58同城,起點,貓眼,大衆點評,啓信寶,天眼查,實習僧,汽車之家

既然這麼多的網站都採用了字體加密,那麼它必定是一個有效的反爬手段,做爲爬蟲工程師咱們應該如何應對呢?網站

首先咱們應該先了解一下什麼是字體加密。google

什麼是字體加密?

網頁字體是一個字形集合,而每一個字形是描述字母或符號的矢量形狀。加密

所以,特定字體文件的大小由兩個簡單變量決定:每一個字形矢量路徑的複雜程度和特定字體中字形的數量。code

字體加密 | 字體加密初認識

通俗一點,同一內容的網頁字體每一個字形應該都是大同小異的,咱們能夠經過比對字體文件的字形來確認映射的內容。orm

關於字體加密的描述文章實在太多了,我的建議仍是看看 Google 官方關於網頁字體的文章。

https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/webfont-optimization?hl=zh-cn

接着是關於網頁字體加密映射的原理圖,下圖來自穀雨解字:

https://guyujiezi.com/

字體加密 | 字體加密初認識

在爬蟲爬取頁面的時候,頁面中的代碼是陰書,可是在人眼看到的是原文,這樣的映射關係讓爬蟲沒法順利爬取到網站內容。

如何處理字體加密?

經過上面的字體加密原理圖,咱們大概瞭解到字體加密的原理。

我推薦沒有搞過字體加密的朋友找個比較簡單的網站練手,網上寫的比較多的例子是貓眼的專業版。

貓眼的字體解密文章很是多,建議沒有接觸過得朋友能夠先本身動手試試,鹹魚也會在以後更新字體解密系列的文章。

下面是字體解密的大體流程:

  • 先找到字體文件的位置,查看源碼大概就是xxx.tff這樣的文件

  • 重複上面那個操做,將兩個字體文件保存下來

  • 用上面的軟件或者網址打開,而且經過 Python fontTools 將 tff 文件解析爲 xml 文件

  • 根據字體文件解析出來的 xml 文件與相似上面的字體界面找出相同內容的映射規律(重點)

  • 在 Python 代碼中把找出的規律實現出來,讓你的代碼可以經過這個規律還原源代碼與展現內容的映射(這句話比較抽象,能夠以後結合代碼文章再讀一遍)

字體解密相關資源

鹹魚這裏直接上資源的連接。

一是查看字體的軟件 FontCreator,支持 window 。

連接:https://pan.baidu.com/s/1tUznnSB3siI2rVY9Whv88A  密碼:ygz9

二是打開字體的網站,適合 mac 系統的朋友使用。

先經過 cloudconvert 把字體文件轉化爲 svg 後再用 fontello 打開查看

http://fontello.com/

https://cloudconvert.com/ttf-to-svg

若是嫌棄上面轉換太過麻煩能夠用百度字體打開。

http://fontstore.baidu.com/static/editor/index.html

鹹魚推薦使用 FontCreator 以及百度字體。

打開後顯示的樣子與下圖相似。

字體加密 | 字體加密初認識

EOF

相關文章
相關標籤/搜索