自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

爬蟲(chóng)遇到字體反爬,哭了

網(wǎng)絡(luò) 通信技術(shù)
在本文中主要講解了如此處理字體反爬問(wèn)題,并以某某點(diǎn)評(píng)為例去實(shí)戰(zhàn)演示分析。辰哥在文中處理的數(shù)字類(lèi)型,大家可以嘗試去試試中文如何解決。

[[403934]]

 大家好,我是辰哥

今天準(zhǔn)備爬取某某點(diǎn)評(píng)店鋪信息時(shí),遇到了『字體』反爬。比如這樣的:

還有這樣的:

可以看到這些字體已經(jīng)被加密(反爬)

竟然遇到這種情況,那辰哥就帶大家如何去解決這類(lèi)反爬(字體反爬類(lèi))

01網(wǎng)頁(yè)分析

在開(kāi)始分析反爬之前,先簡(jiǎn)單的介紹一下背景(爬取的網(wǎng)頁(yè))

辰哥爬取的某某點(diǎn)評(píng)的店鋪信息。一開(kāi)始查看網(wǎng)頁(yè)源碼是這樣的

這種什么也看不到,咱們換另一種方式:通過(guò)程序直接把整個(gè)網(wǎng)頁(yè)源代碼保存下來(lái)

獲取到的網(wǎng)頁(yè)源碼如下:

比如這里看到評(píng)論數(shù)(4位數(shù))都有對(duì)應(yīng)著一個(gè)編號(hào)(相同的數(shù)字編號(hào)相同),應(yīng)該是對(duì)應(yīng)著網(wǎng)站的字體庫(kù)。

下一步,我們需要找到這個(gè)網(wǎng)站的字體庫(kù)。

02獲取字體庫(kù)

這里的字體庫(kù)建議在目標(biāo)網(wǎng)站里面去獲取,因?yàn)椴煌木W(wǎng)站的字體庫(kù)是不一樣,導(dǎo)致解碼還原的字體也會(huì)不一樣。

1、抓包獲取字體庫(kù)

在瀏覽器network里面可以看到一共有三種字體庫(kù)。(三種字體庫(kù)各有不同的妙用,后面會(huì)有解釋)

把字體庫(kù)鏈接復(fù)制在瀏覽器里面打開(kāi),就可以把字體庫(kù)下載到本地。

2、查看字體庫(kù)

這里使用FontCreator的工具查看字體庫(kù)。

下載地址:

  1. https://www.high-logic.com/font-editor/fontcreator/download 

這里需要注冊(cè),郵箱驗(yàn)證才能下載,不過(guò)辰哥已經(jīng)下載了,可以在公眾號(hào)回復(fù):FC,獲取安裝包。

安裝之后,把剛剛下載的字體庫(kù)在FontCreator中打開(kāi)

可以看到字體的內(nèi)容以及對(duì)應(yīng)的編號(hào)。

比如數(shù)字7對(duì)應(yīng)F399、數(shù)字8對(duì)應(yīng)F572 ,咱們?cè)谠W(wǎng)頁(yè)和源碼對(duì)比,是否如此???

可以看到,真是一模一樣對(duì)應(yīng)著解碼就可以還原字體。

3、為什么會(huì)有三個(gè)字體庫(kù)

在查看加密字體的CSS樣式時(shí),方式有css內(nèi)容是這樣的

字體庫(kù)1:d35c3812.woff 對(duì)應(yīng)解碼class為 shopNum

字體庫(kù)2:084c9fff.woff 對(duì)應(yīng)解碼class為 reviewTag和address

字體庫(kù)3:73f5e6f3.woff 對(duì)應(yīng)解碼class為 tagName

也就是說(shuō),字體所屬的不同class標(biāo)簽,對(duì)應(yīng)的解密字體庫(kù)是不一樣的,辰哥這里不得不說(shuō)一句:太雞賊了

咱們這里獲取的評(píng)論數(shù),clas為shopNum,需要用到字體庫(kù)d35c3812.woff

03代碼實(shí)現(xiàn)解密

1、加載字體庫(kù)

既然我們已經(jīng)知道了字體反爬的原理,那么我們就可以開(kāi)始編程實(shí)現(xiàn)解密還原。

加載字體庫(kù)的Python庫(kù)包是:fontTools ,安裝命令如下:

  1. pip install fontTools 

將字體庫(kù)的內(nèi)容對(duì)應(yīng)關(guān)系保存為xml格式

code和name是一一對(duì)應(yīng)關(guān)系

可以看到網(wǎng)頁(yè)源碼中的編號(hào)后四位對(duì)應(yīng)著字體庫(kù)的編號(hào)。

因此我們可以建立應(yīng)該字體對(duì)應(yīng)集合

建立好映射關(guān)系好,到網(wǎng)頁(yè)源碼中去進(jìn)行替換

這樣我們就成功的將字體反爬處理完畢。后面提取內(nèi)容大家基本都沒(méi)問(wèn)題。

2、完整代碼

輸出結(jié)果:

可以看到加密的數(shù)字全部都還原了。

04小結(jié)

辰哥在本文中主要講解了如此處理字體反爬問(wèn)題,并以某某點(diǎn)評(píng)為例去實(shí)戰(zhàn)演示分析。辰哥在文中處理的數(shù)字類(lèi)型,大家可以嘗試去試試中文如何解決。

本文轉(zhuǎn)載自微信公眾號(hào)「Python研究者」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Python研究者公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: Python研究者
相關(guān)推薦

2017-05-15 10:39:48

爬蟲(chóng)應(yīng)對(duì)機(jī)制

2021-10-15 11:37:44

反爬蟲(chóng)破解

2017-12-14 21:45:39

2021-03-18 09:18:12

python爬蟲(chóng)

2022-11-24 10:24:32

2022-09-14 23:06:45

2016-10-13 15:51:50

2021-06-28 18:57:15

CSS網(wǎng)頁(yè)爬蟲(chóng)

2022-09-20 07:02:20

網(wǎng)絡(luò)爬蟲(chóng)反爬蟲(chóng)

2017-10-30 22:31:26

程序員

2021-06-10 18:24:59

反爬蟲(chóng)驗(yàn)證碼爬蟲(chóng)

2016-10-14 16:35:39

2021-11-25 08:11:47

JS網(wǎng)站信息

2018-01-29 09:28:44

2024-06-07 08:56:43

HTTPPythonSelenium

2016-12-07 11:18:58

Python爬蟲(chóng)網(wǎng)站

2017-05-24 15:07:19

Python爬蟲(chóng)爬取

2021-01-12 11:26:44

數(shù)據(jù)安全爬蟲(chóng)

2017-04-27 20:45:48

爬蟲(chóng)反爬蟲(chóng)

2017-06-30 13:23:02

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)