Python字體反爬實戰(zhàn)案例分享
實戰(zhàn)場景
本篇博客學習字體反爬,涉及的站點是實習 x,目標站點地址直接百度搜索即可。

可以看到右側源碼中出現(xiàn)了很多“亂碼”,這其中就包含了關鍵信息。
接下來按照常規(guī)的套路,在開發(fā)者工具中檢索字體相關信息,但是篩選之后,并沒有得到反爬的字體,只有一個 file? 有些許的可能性。

這里就是一種新鮮的場景了,如果判斷不準,那只能用字體樣式和字體標簽名進行判斷了。
在網頁源碼中檢索 @font-face 和 myFont,得到下圖內容,這里發(fā)現(xiàn) file 字體又出現(xiàn)了,看來解決問題的關鍵已經出現(xiàn)了。

下載文件名之后發(fā)現(xiàn)無后綴名,我們可以補上一個 .ttf 的后綴,接下來拖拽到 FontCreator 中,然后進行查閱。

二次刷新頁面之后,再次獲取一個 file 文件,查看二者是否有編碼變化問題。
結論:每次請求字體文件,得到的響應無變化。
既然沒有變化,后續(xù)的字體反爬實戰(zhàn)編碼就變的簡單了。
實戰(zhàn)編碼
解析字體文件,獲取編碼與字符。
from fontTools.ttLib import TTFont
font1 = TTFont('./fonts/file.ttf')
keys,values = [],[]
for k, v in font1.getBestCmap().items():
print(k,v)
得到的結果如下所示:
2 extra bytes in post.stringData array
120 x
57345 uni4E00
57360 uni77
57403 uni56
……
然后我們查看一下實習僧站點返回的數(shù)據(jù)。
-
這其中又涉及到了編碼的轉換。
我們拿到一段帶編碼的文字,如下所示:
銷售實習
接下來查看一下頁面呈現(xiàn)的文字
SaaS軟件銷售實習生
其中  對應的是 S 字符,再看一下該字符在字體文件中的編碼,如下所示。

但是從剛才的結果中,并未得到 edb3 相關值,但是把十進制的編碼進行轉換之后,得到下述結果。

到此這篇關于Python字體反爬實戰(zhàn)案例分享的文章就介紹到這了,更多相關Python字體反爬 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python3 實現(xiàn)將bytes圖片轉jpg格式
這篇文章主要介紹了Python3 實現(xiàn)將bytes圖片轉jpg格式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
詳解使用python繪制混淆矩陣(confusion_matrix)
這篇文章主要介紹了詳解使用python繪制混淆矩陣(confusion_matrix),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
比較兩個numpy數(shù)組并實現(xiàn)刪除共有的元素
這篇文章主要介紹了比較兩個numpy數(shù)組并實現(xiàn)刪除共有的元素,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02

