1. 爬蟲 | 五八字體反爬

        共 1043字,需瀏覽 3分鐘

         ·

        2020-03-12 23:24

        作者丨木下瞳來源丨木下學(xué)Python



        前言

        58二手車:

        https://sz.58.com/ershouche/pn2/?PGTID=0d100000-0000-4e81-5801-e3cfbaae2802&ClickID=120


        fe1a75650ce416c4dd1021290b2664bc.webp



        小編想爬一爬58同城的二手車,了解一下,爬取過程中在二手車的信息詳情頁,發(fā)現(xiàn)交易價(jià)的數(shù)字是加密過的:




        我們來看一看怎么獲取正確的數(shù)字。




        字體文件獲取

        查看源代碼發(fā)現(xiàn),源代碼里面返回的和我們右鍵檢查的不一樣:



        fb762e05571aac7c9b8d9982c513125f.webp


        這是因?yàn)楝F(xiàn)實(shí)源代碼里的數(shù)字加密了后,渲染到前端,以那些牛鬼蛇神的樣子出現(xiàn)的。

        字體加密,就會(huì)涉及到字體文件,字體文件后綴一般為 woff,ttf,我們?cè)谠创a里面搜索,由于太長,分兩張圖:



        65650eba97a62ce95c9175615dbc6a55.webp
        c8b3f572d25b098b7865e51b6dec015f.webp


        可以看到,這就是字體文件的鏈接內(nèi)容,我們需要得到字體文件內(nèi)容。

        在這里看到了 base64,說明它后面這一串,也就是兩個(gè)箭頭之間的字符串的 base64 編碼過的,這些字符串就是字體映射的內(nèi)容。

        src:url 后面一直到第二個(gè)箭頭這段字符串是一個(gè) url,訪問這個(gè)鏈接,就會(huì)下載字體文件,由于 58 每一頁的字體映射都不一樣,這樣每次請(qǐng)求會(huì)增加網(wǎng)絡(luò)請(qǐng)求的時(shí)間。

        所以我們采取 base64 解碼,把兩個(gè)箭頭之間的字符串解碼,解碼的結(jié)果是二進(jìn)制的,寫入文件,后綴為 woff:


        f0f4e77d751751e209947da8dad6b86e.webp


        這樣我們就獲得了字體文件。




        ?字體映射?

        由于我們不經(jīng)過字體破解,直接爬取源代碼得到的字體是:

        驋閏.齤

        這樣的形式,我們就以這個(gè)來說明怎么轉(zhuǎn)為正確的數(shù)字。

        我們得到的字體文件,可以用 fontTools 庫打開,我們需要另存為 xml 文件,這樣是方便打開 xml 文件分析映射:


        ef092963dfa1e8af37036cee9e14391c.webp


        打開 xml 文件,有兩個(gè)重要的部分:



        f6d403ff0c834dc37c2893e86ca52210.webp


        驋 我們來看,&# 對(duì)應(yīng) code 屬性的 0

        0x9a4b 對(duì)應(yīng) name 屬性的?glyph00003

        name 的值為 glyph00003 對(duì)應(yīng)的 id 屬性為 3

        由于是從上往下是從 1 開始,所以需要減一,才是映射的數(shù)字

        可以通過 xml 庫讀取 xml 文件來進(jìn)行字體映射轉(zhuǎn)換:


        60f96097107540675c23b4ff91b562b5.webp


        我們看看是否對(duì)應(yīng)上了:


        5774a2e7324320d02a401f75dd339c7c.webp
        8cdd5df7c3cb0c08aa80987789c77ad6.webp
        df643219ba00798500cd020929a1d69a.webp


        這樣我們字體反爬就破解了。

        小編爬取的是深圳二手車的數(shù)據(jù),爬蟲已寫好,想要爬蟲的小伙伴可以去獲取,來看看小編爬取的結(jié)果:


        523f4dd517cfffbeceed44abc0253e55.webp

        eea53815932b2eb13254add4faee9c7b.webp

        近期精彩內(nèi)容推薦:??

        c3024302b6855aede464c65a2e215a3e.webp?程序員這碗青春飯,怎么吃得更久一點(diǎn)?

        c3024302b6855aede464c65a2e215a3e.webp?順豐小哥連升3級(jí),國家授予特別獎(jiǎng)!

        c3024302b6855aede464c65a2e215a3e.webp?狠人 Spring Cloud 20000 字總結(jié)!

        c3024302b6855aede464c65a2e215a3e.webp?python實(shí)現(xiàn)文件自動(dòng)歸類




        80bf2af2677ad7310e21a9b18599c5f5.webp

        在看點(diǎn)這里28dd4c8a66c7426efc4a06b0f5e5dc06.webp好文分享給更多人↓↓

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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 国产91蝌蚪视频 | 黑大巨大一区二区三区 | 香蕉自拍偷拍视频 | 美女操逼电影 | 国产一级婬乱A片无遮精产品 |