大眾點評網站字體反爬解決方案


大眾點評網站字體反爬解決方案

以贛州美食欄目為例 https://www.dianping.com/huizhou/ch10

通過查看頁面元素,此處的評論條數、人均消費都是通過字體的形式進行轉換的。我樣查看源代碼數字顯示的是這種編碼格式的。

UntitledImage

 

UntitledImage

通過相看頁面元素相應的樣式表,可以發現,上面數字對應的樣式使用了字體。

UntitledImage

既然是字體的緣故,我們就把相應的woff下載下來,使用百度開源的字體編輯工具(fontEditor)查看

UntitledImage

通過與上方頁面源代碼中的數字代碼與字體中的編碼作比較,可以發現兩者后四位是相同的。

大眾點評網站中的字體雖然每次刷新的時候都會是新的字體文件,但有一點是不變的,就是字體中文字是固定的(如果后期改成非固定文字就難搞了)。

font_text = ["", "", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "店", "中", "美", "家", "館", "小", "車", "大",
"市",
"公", "酒", "行", "國", "品", "發", "電", "金", "心", "業", "商", "司", "超", "生", "裝", "園", "場", "食", "有",
"新",
"限", "天", "面", "工", "服", "海", "華", "水", "房", "飾", "城", "樂", "汽", "香", "部", "利", "子", "老", "藝",
"花",
"專", "東", "肉", "菜", "學", "福", "飯", "人", "百", "餐", "茶", "務", "通", "味", "所", "山", "區", "門", "葯",
"銀",
"農", "龍", "停", "尚", "安", "廣", "鑫", "一", "容", "動", "南", "具", "源", "興", "鮮", "記", "時", "機", "烤",
"文",
"康", "信", "果", "陽", "理", "鍋", "寶", "達", "地", "兒", "衣", "特", "產", "西", "批", "坊", "州", "牛", "佳",
"化",
"五", "米", "修", "愛", "北", "養", "賣", "建", "材", "三", "會", "雞", "室", "紅", "站", "德", "王", "光", "名",
"麗",
"油", "院", "堂", "燒", "江", "社", "合", "星", "貨", "型", "村", "自", "科", "快", "便", "日", "民", "營", "和",
"活",
"童", "明", "器", "煙", "育", "賓", "精", "屋", "經", "居", "庄", "石", "順", "林", "爾", "縣", "手", "廳", "銷",
"用",
"好", "客", "火", "雅", "盛", "體", "旅", "之", "鞋", "辣", "作", "粉", "包", "樓", "校", "魚", "平", "彩", "上",
"吧",
"保", "永", "萬", "物", "教", "吃", "設", "醫", "正", "造", "豐", "健", "點", "湯", "網", "慶", "技", "斯", "洗",
"料",
"配", "匯", "木", "緣", "加", "麻", "聯", "衛", "川", "泰", "色", "世", "方", "寓", "風", "幼", "羊", "燙", "來",
"高",
"廠", "蘭", "阿", "貝", "皮", "全", "女", "拉", "成", "雲", "維", "貿", "道", "術", "運", "都", "口", "博", "河",
"瑞",
"宏", "京", "際", "路", "祥", "青", "鎮", "廚", "培", "力", "惠", "連", "馬", "鴻", "鋼", "訓", "影", "甲", "助",
"窗",
"布", "富", "牌", "頭", "四", "多", "妝", "吉", "苑", "沙", "恆", "隆", "春", "干", "餅", "氏", "里", "二", "管",
"誠",
"制", "售", "嘉", "長", "軒", "雜", "副", "清", "計", "黃", "訊", "太", "鴨", "號", "街", "交", "與", "叉", "附",
"近",
"層", "旁", "對", "巷", "棟", "環", "省", "橋", "湖", "段", "鄉", "廈", "府", "鋪", "內", "側", "元", "購", "前",
"幢",
"濱", "處", "向", "座", "下", "県", "鳳", "港", "開", "關", "景", "泉", "塘", "放", "昌", "線", "灣", "政", "步",
"寧",
"解", "白", "田", "盯", "溪", "十", "八", "古", "雙", "勝", "本", "單", "同", "九", "迎", "第", "台", "玉", "錦",
"底",
"后", "七", "斜", "期", "武", "嶺", "松", "角", "紀", "朝", "峰", "六", "振", "珠", "局", "崗", "洲", "橫", "邊",
"濟",
"井", "辦", "漢", "代", "臨", "弄", "團", "外", "塔", "楊", "鐵", "浦", "字", "年", "島", "陵", "原", "梅", "進",
"榮",
"友", "虹", "央", "桂", "沿", "事", "津", "凱", "蓮", "丁", "秀", "柳", "集", "紫", "旗", "張", "谷", "的", "是",
"不",
"了", "很", "還", "個", "也", "這", "我", "就", "在", "以", "可", "到", "錯", "沒", "去", "過", "感", "次", "要",
"比",
"覺", "看", "得", "說", "常", "真", "們", "但", "最", "喜", "哈", "么", "別", "位", "能", "較", "境", "非", "為",
"歡",
"然", "他", "挺", "着", "價", "那", "意", "種", "想", "出", "員", "兩", "推", "做", "排", "實", "分", "間", "甜",
"度",
"起", "滿", "給", "熱", "完", "格", "薦", "喝", "等", "其", "再", "幾", "只", "現", "朋", "候", "樣", "直", "而",
"買",
"於", "般", "豆", "量", "選", "奶", "打", "每", "評", "少", "算", "又", "因", "情", "找", "些", "份", "置", "適",
"什",
"蛋", "師", "氣", "你", "姐", "棒", "試", "總", "定", "啊", "足", "級", "整", "帶", "蝦", "如", "態", "且", "嘗",
"主",
"話", "強", "當", "更", "板", "知", "己", "無", "酸", "讓", "入", "啦", "式", "笑", "贊", "片", "醬", "差", "像",
"提",
"隊", "走", "嫩", "才", "剛", "午", "接", "重", "串", "回", "晚", "微", "周", "值", "費", "性", "桌", "拍", "跟",
"塊", "調", "糕"]

我們就可以通過TTFont獲取字體文件中的編碼,然后將前三位(uni)替換為&#x,然后再根據字體編碼與文字對應關系進行映射,這樣就可以得到最終的數字了。

 

今天先寫一下思路,改天整理一下代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM