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

【字體反爬】的起點,月票數解析,一個小小的Python案例【2】

編輯:Python

@[toc]

️ 實戰起點

本次要采集的目標站點為 https://Python脫敏處理.qidian.Python脫敏處理/rank/yuepiao/

月票榜單的數字為特殊字體,並且 class 看起來為一個加密字符串。

測試之後發現,字體樣式恰好是字體文件名稱,並且每次刷新都會發生變化。

下載字體矢量圖之後,查看編碼發現只是簡單的中英文對照關系。

字體矢量圖解析就非常簡單了,下面我們優先獲取字體文件。

️ 實戰編碼

接下來獲取網頁源碼,然後嘗試提取其中的字體文件。

import reimport requestsbase_url = 'https://www.qidian.com/rank/yuepiao'headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36', 'Host': 'www.qidian.com'}response = requests.get(base_url, headers=headers)# print(response.text)font_url = re.findall(r"\); src: url\('(.*?)'\) format\('woff'\)", response.text)[0]print(font_url)

得到的字體文件如下所示。

https://qidian.gtimg.com/qd_anti_spider/wWZgjsqu.woff

其實到這裡本案例已經結束了,當你獲取到字體文件只有,可以對其進行存儲與解析。

from fontTools.ttLib import TTFontimport iores_font = requests.get(font_url)font = TTFont(io.BytesIO(res_font.content))print(font)# 編碼對應關系font_cmap = font.getBestCmap()print(font_cmap)


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

從訂購之日起,案例 5 年內保證更新


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