常見的六種反爬技術應用
jj
2021-12-09
方法一、前端逆向
前端以暴露為特征,暴露項目是將前端的所有代碼和數據交給客戶,通過分析html、js等源代碼獲取數據的技術行動。Chrome Debug是一個常見的前端反向工具。動態呈現的網站通常通過前端逆向分析進行分析。在徹底分析的情況下,模仿瀏覽器可以避免嘗試爬行。

瀏覽器模擬是指使用真實的瀏覽器來請求和執行頁面和腳本。應用場景是用復雜的JS和接口加密爬取網站,被BOT用于復雜性網站。常見的瀏覽器模擬框架包括Selenium WebDriver和PhatomJS。Selenium是通過瀏覽器的調試界面對瀏覽器進行遠程操作控制API。Phantomjs是嵌入瀏覽器內核的js渲染服務,可以用來對抗動態渲染和接口加密的所有呈現和加密過程都是由瀏覽器內核完成的。高級方法是使用CEF(Chrome嵌入式框架)進行二次開發。通過CEF的二次開發,我們可以獲得強大的靈活性,比如頁面加載前劫持JS對象,使用C++代碼掛接原生js api等等。這項技術的主要缺點是性能低。純粹的在HTTP請求代碼方面,這個方案需要50~500倍的CPU。也就是說,它的效率會下降幾十到幾百倍。
三、字符識別
光學字符識別(OCR)用于對抗簡單的數字和字母驗證碼。初級光學字符識別基于模板?;谏窠浘W絡的高級字符識別,例如[這基于LSTM模型的項目]可以提供更好的識別率。
四、行為模擬
行為模擬是指在爬蟲和BOT的過程中,故意留下Cookie,要求模擬一些與需要抓取的數據無關的接口或者一些動作。模擬一般用戶的動作,用于分析對抗行為。在BOT場景中,這種方法也用于模擬用戶的活動和保率。一般來說,行為模擬大師根據來自前端的逆向工作,破解者需要確定網站關注哪些HTML元素和用戶行為事件,并進行針對性的模擬行為。大多數情況下,爬蟲的行為模擬是請求一個日志報告界面,而對于一些特殊的網站(如支付寶),則附加了用戶行為數據公共接口的參數被請求,并且非?;靵y。
編碼平臺用于對抗高強度的驗證碼和人機驗證方案。正常的驗證碼過程是網站生成一張圖片傳遞給用戶,用戶輸入這個圖片的信息發回網站完成人機驗證。破解者通過對接編碼平臺將用戶身份信息的鏈接放入編碼平臺,編碼平臺組織一個組專職人員,對驗證碼進行識別,并帶回爬蟲,完成驗證碼的識別。先進的編碼平臺也會利用這些海量的編碼數據進行建模培訓類型。
六、JS HOOK
該方法主要用于對抗js上下文的跟蹤和分析。為此,在加載頁面之前,通過替換JS上下文中的對象,JS上下文中的對象和參與方將被更改方法進行替換。比如替換window.screen對象,這樣網站的js代碼就可以獲得替換后的屏幕分辨率。JS Hook一般在CEF二次開發中實現?,F在,js hook也可以通過劫持普通瀏覽器的流量來完成。
上一篇:如何更改代理服務器的IP地址?
下一篇:ip地址對網站搜索引擎優化有影響