爬蟲進階 -- 神級程序員:讓你的爬蟲就像人類的用戶行爲!

1 前言
近期,有些朋友問我一些關於如何應對反爬蟲的問題。因爲好多朋友都在問,所以決定寫一篇此類的博客。把我知道的一些方法,分享給你們。博主屬於小菜級別,玩爬蟲也徹底是處於興趣愛好,若有不足之處,還望指正。服務器

在互聯網上進行自動數據採集(抓取)這件事和互聯網存在的時間差很少同樣長。今天大衆好像更傾向於用「網絡數據採集」,有時會把網絡數據採集程序稱爲網絡機器人(bots)。最經常使用的方法是寫一個自動化程序向網絡服務器請求數據(一般是用 HTML 表單或其餘網頁文件),而後對數據進行解析,提取須要的信息。網絡

說句實在話,若是個人網站老是讓人爬來爬取的,常常被虛擬訪問者騷擾,我也是蠻煩的,並且若是遇到「霸道」一點的爬蟲,都能直接把服務器卡死。所以,咱們在爬取別人網站的時候,也多爲對方考慮考慮。不過話說回來,我卻沒有這個煩惱,爲何呢?由於我根本就沒有本身的網站。=.=網站

2 黑科技
網站防採集的前提就是要正確地區分人類訪問用戶和網絡機器人。如今網站有不少技術來防止爬蟲,好比驗證碼,對於一些簡單的數字驗證碼,可使用訓練好的caffemodel諸如此類的模型去識別,準確率仍是能夠的。固然,也能夠在Github搜一搜關於驗證碼識別的東西,看一看大牛們是怎麼玩的。除了這些高大上的,還有一些十分簡單的方法可讓你的網絡機器人看起來更像人類訪問用戶。博客

2.1 構造合理的HTTP請求頭
除了處理網站表單,requests 模塊仍是一個設置請求頭的利器。HTTP 的請求頭是在你每次向網絡服務器發送請求時,傳遞的一組屬性和配置信息。HTTP 定義了十幾種古怪的請求頭類型,不過大多數都不經常使用。requests

每一個網站都有不一樣的請求頭,如何獲取這個請求頭呢?能夠用我從前提到過的Fiddler或者審查元素的方法,咱們能夠根據實際狀況進行配置。例如,GET百度根目錄的時候,須要添加的請求頭信息以下:it

相關文章
相關標籤/搜索