常見的6種應用層反反爬蟲的技術
方法一、 前端逆向
前端逆向,利用的特點邊是暴露,暴露的專案則是前端所有的程式碼和資料給客戶,透過分析html,js等原始碼獲取資料的技術。Chrome Debug就是常用的前端逆向工具。動態渲染的網站是通常用前端逆向分析的方法來分析的。在分析透徹的情況下,可以避免試用瀏覽器模仿的方式來進行爬取的。
方法二、 瀏覽器模擬
瀏覽器模擬指利用真實的瀏覽器去請求、執行頁面和指令碼。應用場景是爬取帶有複雜JS和介面加密的網站、也被BOT用於複雜網站。常見的瀏覽器模擬框架有Selenium WebDriver、 PhatomJS。 Selenium 是透過瀏覽器的debug介面進行瀏覽器的遠端操控API。PhantomJS是一個嵌入了瀏覽器核心的js渲染服務,這種技術可以用來對抗動態渲染和介面加密。所有的渲染和加密過程都由瀏覽器核心完成。 高階的做法是用CEF(Chrome Embedded Framework)進行二次開發。透過二次開發CEF,可以獲得很強的靈活性, 比如在頁面載入之前劫持JS物件、用C++程式碼hook native js api等等。這種技術的主要劣勢是低下的效能。 與純粹的HTTP請求程式碼來說, 這種方案要多吃50~500倍的CPU。 也就是說, 它的效率要下降數十倍到數百倍左右。
方法三、 字元識別
光學字元識別(OCR)用於對抗簡單的數字、字母驗證碼。初級的OCR基於模板。高階的字元識別基於神經網路,比如[這個專案],它基於LSTM模型,可以提供更好的識別率。
方法四、 行為模擬
行為模擬是指在爬蟲和BOT的過程中,有意的留下Cookie,並請求一些與需要爬取資料無關的介面或者做一些動作,用來模擬一般使用者的動作, 用於對抗行為分析。 在BOT場景下,這種方式也用來模擬使用者的活躍度和留存率。 一般來說,行為模擬的主要依據來源於前端逆向的工作, 破解者需要確定究竟有哪些HTML元素和使用者行為事件被網站所關注,並針對性的做出想要模擬的行為。 大多數情況下,爬蟲的行為模擬是請求某個日誌上報介面, 而一些比較特殊的網站(比如支付寶), 使用者行為資料附著在請求普通介面的引數中,並經過高度混淆。
方法五、打碼平臺
打碼平臺用來對抗強度比較高的驗證碼和人機驗證方案。正常的驗證碼流程是,由網站生成一張圖片傳遞給使用者,使用者輸入這張圖片的資訊傳回網站,完成人機驗證。 破解者透過對接打碼平臺,將使用者識別資訊的環節放到打碼平臺去做,打碼平臺組織一群專職人員,進行驗證碼的識別工作,並傳回爬蟲,完成驗證碼的識別工作。高階的打碼平臺還會利用這些海量的打碼資料進行模型訓練。
方法六、 JS Hook
這種方式主要用來對抗js上下文的跟蹤和分析。做法是,在頁面載入前,透過替換JS上下文的物件,將JS上下文中的物件和方法替換掉。 例如,將window.screen物件替換, 使網站的js程式碼獲取到替換後的螢幕解析度。 JS Hook一般在CEF二次開發中實現,也可以透過劫持普通瀏覽器的流量完成js hook。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31555707/viewspace-2564518/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 常見的三種反爬蟲措施爬蟲
- 爬蟲進階:反反爬蟲技巧爬蟲
- 網路爬蟲技術及應用爬蟲
- 反爬蟲的四種常見方式-JS逆向方法論爬蟲JS
- 寫爬蟲時常見的五種字串編碼特徵爬蟲字串編碼特徵
- 50種常見的影像分割技術
- 常見的反爬蟲措施與應對方法介紹爬蟲
- 爬蟲中代理IP的常見方案爬蟲
- Python爬蟲一般會用什麼框架?常見的五種框架介紹!Python爬蟲框架
- 8種常見的駭客攻擊技術
- 「資料分析」2種常見的反爬蟲策略,資訊驗證和動態反爬蟲爬蟲
- 常見的爬蟲型別有什麼?爬蟲型別
- 導致Python爬蟲封禁的常見原因Python爬蟲
- python爬蟲常見的那點問題!Python爬蟲
- 網路爬蟲之關於爬蟲 http 代理的常見使用方式爬蟲HTTP
- 那些年,我爬過的北科(六)——反反爬蟲之js渲染爬蟲JS
- 什麼是Python網路爬蟲?常見的網路爬蟲有哪些?Python爬蟲
- 常見網站反爬蟲的解決措施網站爬蟲
- 爬蟲與反爬蟲技術簡介爬蟲
- Python爬蟲抓取技術的門道Python爬蟲
- 物聯網常見的十種定位技術的優缺點
- 爬蟲技術淺析爬蟲
- 爬蟲技術實戰爬蟲
- 反爬與反反爬
- 那些年,我爬過的北科(八)——反反爬蟲之驗證碼識別爬蟲
- 得物技術訊息中介軟體應用的常見問題與方案
- 爬蟲常見問題及解決方式爬蟲
- 網路爬蟲編寫常見問題爬蟲
- 【彙總】Python爬蟲常見面試題!Python爬蟲面試題
- python爬蟲庫技術分享Python爬蟲
- python網路爬蟲應用_python網路爬蟲應用實戰Python爬蟲
- 日常爬蟲工作中一些常見的和不常見的偽裝技巧爬蟲
- 爬蟲技術不只是用來抓資料爬蟲
- RPC 技術及其框架 Sekiro 在爬蟲逆向中的應用,加密資料一把梭!RPC框架爬蟲加密
- 展廳互動多媒體常見的四種技術分類
- Web 端反爬蟲技術方案Web爬蟲
- 常見的專案管理問題如何應對?| 得物技術專案管理
- 常見的專案管理問題如何應對?|得物技術專案管理