hyspider之貓眼價格解密

2021-09-08 13:08:03 字數 1989 閱讀 4460

貓眼**資訊使用了woff字型,每次請求都會返回解析當前頁面字型使用的woff檔案,並且每次響應中woff檔案都不同。

@font-face 

.stonefont

h5平台直接返回woff檔案內容,不過需要注意的是h5中woff內容是通過ajax載入的,在解析**前一定要等待font-face資訊載入完成:

@font-face 

.stonefont

#用fonttolls解析woff檔案

base_font = ttlib.ttfont(os.path.expanduser('~') + '/base.woff')

base_unicode_list = base_font.getglyphorder()

base_unicode2num =

通過與base.woff中影象進行對比,為每次請求返回的woff建立影象編碼與數字對映關係。

class mtfontparser:

mt_unicode2num = dict()

def __init__(self, woff):

self.woff_file = self.get_woff_file(woff)

mt_font = ttlib.ttfont(self.woff_file)

#獲取woff檔案中影象編碼

mt_unicode_list = mt_font.getglyphorder()

for mt_unicode in mt_unicode_list:

mt_glyph = mt_font['glyf'][mt_unicode]

for base_unicode in base_unicode_list:

#將woff檔案中影象與base中影象進行對比,查詢影象編碼對應的數字

return woff_file

頁面中**資訊由多個字元組成,通過parse_price解密:

def parse_price(self, price_code):

price_str = ''

for c in price_code:

if c != '.':

i = hex(ord(c))

key = 'uni' + str(i).lstrip('0x').upper()

price_str += self.mt_unicode2num.get(key) #從影象編碼與數字的對映關係中查詢

else:

price_str += '.'

return price_str

這樣動態變化的woff字型**資訊也就可以動態解密了。

mtfontparser原始碼:

hyspider之智慧型運維監控

借助scrapyd,可以通過http請求遠端排程爬蟲。scrapy.cfg中加入deploy配置 scrapyd安裝 pip install scrapyd 啟動scrapyd,scrapyd deploy上傳的檔案存放到 安裝scrapyd client pip install scrapyd c...

Python之爬蟲 貓眼電影

usr bin env python coding utf 8 import json import requests import re import time 貓眼多了反爬蟲,速度過快,則會無響應,所以這裡多了乙個延時等待 from requests.exceptions import requ...

shell樂趣之猜價格

shell下猜 遊戲 案例要求 由指令碼預先生成乙個隨機的 數目 0 999 作為實際 判斷使用者猜測的 是否高出或低於實際 給出相應提示後再次要求使用者猜測 一直到使用者猜中實際 為止,輸出使用者共猜測的次數 實際 數。實驗步驟 1 編寫指令碼,指令碼名隨意,shell.sh 截圖如下 內容如下 ...