爬蟲抓取58簡歷之字型檔解密

2021-08-30 15:59:47 字數 1267 閱讀 8054

前言最近接了個人力資源管理系統的專案, 部分資料需要抓取58的簡歷資料. 在資料抓取環節踩了很多坑, 所以寫個博文分享下心得.

抓取的第一步就遇到了難題,瀏覽器可以顯示字型,開發者模式看不到

檢視原始碼,發現未知編碼,並且編碼每次都變.

在html的css部分發現58載入了base64編碼的woff動態字型檔, 每次重新整理網頁字型檔都不同.

因為字型檔每次都不一樣,所以多分析了幾個字型檔檔案,找到了字型檔的共同特徵,看下圖

分析字型檔檔案,找出了共同特徵:

a、45個字型

b、字型unicode隨機、d值隨機

c、最重要的一點----> d值開頭不變

剩下的就是體力活了, 找出d值和真實字型之間的對應關係. 我直接分享結果出來:

前面把最難,最耗時間的問題解決了. 下面就是自動化處理流程了:

爬蟲抓取html原始碼->取出加密字型檔->轉化為svg->根據d值取出unicode和真正字型的對應關係->替換html原始碼
我的專案是c#開發,轉化svg用了github的python庫,為了c#開發的桌面程式使用方便,用php寫了個api呼叫py指令碼自動處理了(ps: 不會python, 別笑話我 ).

這裡給出api位址, 提交base64編碼的woff字型到伺服器即可自動解密並返回key=>value對應的json資料. 介面限制了訪問頻率, 請勿用於商業用途.

url:     	

method: post

parameters: content [string] base64編碼的woff檔案內容

springboot之爬蟲抓取資料

一.加入依賴 dependency 二 建立httpclientdownpage這個類請求方法分為get和post兩種,如下 設定 模仿瀏覽器 private static final string user agent public static string sendget string url...

Python爬蟲實戰之解密HTML

1.增加本人csdn訪問量 2.當作乙個python的練手專案 3.想寫出更優質的部落格技術文章,不再為了訪問量去寫文章。author ytouch date 2019 07 27 this py is used for brushing pageview for csdn 匯入相關爬蟲庫和解析xm...

Python網路爬蟲之抓取訂餐資訊

本文以大眾點評網為例,獲取頁面的餐館資訊,以達到練習使用python的目的。import urllib.request import re def fetchfood url 模擬使用瀏覽器瀏覽大眾點評的方式瀏覽大眾點評 headers user agent opener urllib.reques...