<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          我去!爬蟲遇到字體反爬,哭了!

          共 1541字,需瀏覽 4分鐘

           ·

          2021-07-18 13:45


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

          還有這樣的:

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

          竟然遇到這種情況,那我就帶大家如何去解決這類反爬(字體反爬類

          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ù)。

          下載地址:

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

          這里需要注冊(cè),郵箱驗(yàn)證才能下載。

          安裝之后,把剛剛下載的字體庫(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 ,安裝命令如下:

          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ù)字類型,大家可以嘗試去試試中文如何解決。

          不明白的地方可以在下方留言,一起交流。



          - EOF -


            推薦閱讀:


          我為大家整理了一份從入門到進(jìn)階的Python學(xué)習(xí)資料禮包,包含學(xué)習(xí)建議:入門看什么,進(jìn)階看什么。關(guān)注公眾號(hào) 「python之禪」,回復(fù) ebook 獲??;還可以回復(fù)「進(jìn)群」,和10w+ pythonista 交流學(xué)習(xí)。

          瀏覽 59
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  麻豆操逼网站 | 欧美成人毛片一级A片 | 一区操逼| 另类性爱视频 | 爆操熟妇在线视频 |