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

字體反爬蟲的原理和破解方法

安全 應(yīng)用安全
通過對源網(wǎng)頁中的占位數(shù)據(jù)和字體進(jìn)行比對,我們發(fā)現(xiàn)將源數(shù)據(jù)中的&#x替換成$,然后將字符串首字母大寫,就變成了字體對應(yīng)的字符串了。

[[429151]]

大家好,我是志斌~

之前給大家介紹了一種SVG映射反爬蟲,今天在給大家介紹另外一種通過映射關(guān)系來進(jìn)行反爬蟲的方式。

不知道大家有沒有遇到過這種情況,在寫爬蟲程序之前我們需要對目標(biāo)數(shù)據(jù)進(jìn)行觀察,但是在我們觀察時發(fā)現(xiàn)目標(biāo)數(shù)據(jù)在網(wǎng)頁中是以這種奇怪的方式出現(xiàn)的。

這種反爬蟲就是字體反爬蟲,今天志斌就來跟大家分享一下如何繞過這類反爬蟲。

一、原理

在之前,網(wǎng)站開發(fā)者在設(shè)計網(wǎng)頁時只能使用公用的字體來展示網(wǎng)頁中的數(shù)據(jù)。

但是,隨著CSS樣式的深入開發(fā),網(wǎng)站開發(fā)者可以將自己的字體放到服務(wù)器中。當(dāng)用戶在訪問Web界面時,對應(yīng)的字體就會被瀏覽器自動下載到用戶的計算機(jī)中,然后通過CSS樣式進(jìn)行調(diào)用。

之后,通過一種映射關(guān)系,使得網(wǎng)頁中的源數(shù)據(jù)變?yōu)檎嬲臄?shù)據(jù)進(jìn)行展示。

通過這種方式,使得這樣就使得網(wǎng)站開發(fā)者進(jìn)行網(wǎng)頁設(shè)計時,只需要使用特殊字符進(jìn)行占位即可,不需要將真正的數(shù)據(jù)放到頁面中去。這樣,爬蟲程序如果不知道這種映射關(guān)系的話,就無法從字體中獲取正確的數(shù)據(jù),從而實現(xiàn)反爬蟲。

二、破解

破解這類字體反爬蟲有以下幾步。

1.下載字體woff文件

從上面我們知道,字體是在服務(wù)器上進(jìn)行存儲,并通過瀏覽器下載到我們的電腦上的,那么我們就可以在網(wǎng)站上找到加載的字體文件,下載下來。

下載下來之后,打開它進(jìn)行觀察,這里給大家分享一個再點字體編譯器網(wǎng)站,使用它可以很方便打開woff文件。網(wǎng)址:http://font.qqe2.com/index-en.html。

打開字體文件之后,我們發(fā)現(xiàn),每個數(shù)字都對應(yīng)一個字符串,如7對應(yīng)的是$E9C7。

2.尋找映射關(guān)系

通過對源網(wǎng)頁中的占位數(shù)據(jù)和字體進(jìn)行比對,我們發(fā)現(xiàn)將源數(shù)據(jù)中的&#x替換成$,然后將字符串首字母大寫,就變成了字體對應(yīng)的字符串了。

3.構(gòu)建映射算法

在上面我們已經(jīng)找到了字體之間映射關(guān)系,那么我們現(xiàn)在就可以開始用Python來構(gòu)建映射算法,從而使得爬蟲可以獲取一個正確的數(shù)據(jù)。

構(gòu)建代碼如下:

  1. data = { 
  2.    '&#xe9c7' : 7, 
  3.    '&#xf57b' : 1, 
  4.    '&#xe7df' : 2, 
  5.    '&#xe339' : 6, 
  6.    '&#xe624' : 9, 
  7.    '&#xea16' : 5, 
  8.    '&#xf19a' : 3, 
  9.    '&#xee76' : 0, 
  10.    '&#xf593' : 4, 
  11.    '&#xefd4' : 8, 

之后,我們即可對網(wǎng)頁進(jìn)行爬取,然后將對應(yīng)的源數(shù)據(jù)與data進(jìn)行比如,從而獲得正確數(shù)據(jù)。

三、小結(jié)

1. 本文詳細(xì)介紹了如何破解字體反爬蟲,由于這種反爬蟲是使用CSS進(jìn)行加載和映射的,所以即使使用一些自動化軟件或者渲染工具也無法獲得真正的數(shù)據(jù)。

2. 這類反爬蟲的破解只需要將woff文件中的字體與頁面數(shù)據(jù)之間的對應(yīng)關(guān)系找到,構(gòu)建好即可。

3. 找到woff文件進(jìn)行下載是關(guān)鍵。

4. 有興趣的讀者可以找志斌要一下網(wǎng)站自己嘗試一下。 

5. 本文僅供學(xué)習(xí)參考,不做它用。

 

責(zé)任編輯:武曉燕 來源: 志斌的python筆記
相關(guān)推薦

2021-06-28 18:57:15

CSS網(wǎng)頁爬蟲

2021-06-09 18:22:11

反爬蟲破解

2021-06-06 19:53:05

爬蟲處理字體反爬

2022-11-24 10:24:32

2016-10-13 15:51:50

2022-09-14 23:06:45

2020-10-20 10:47:51

破解MassLogge

2009-04-27 21:28:56

2022-09-20 07:02:20

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

2018-01-29 09:28:44

2024-06-07 08:56:43

HTTPPythonSelenium

2021-06-10 18:24:59

反爬蟲驗證碼爬蟲

2017-05-15 10:39:48

爬蟲應(yīng)對機(jī)制

2022-07-03 10:43:23

JS逆向破解

2016-10-14 16:35:39

2017-04-27 20:45:48

爬蟲反爬蟲

2017-06-30 13:23:02

2020-05-21 09:25:17

Python反爬蟲DDOS攻擊

2018-08-09 11:35:40

Python網(wǎng)絡(luò)爬蟲語言編程

2010-04-27 10:08:49

點贊
收藏

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