爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
1 前言
近期,有些朋友問我一些關于如何應對反爬蟲的問題。由于好多朋友都在問,因此決定寫一篇此類的博客。把我知道的一些方法,分享給大家。博主屬于小菜級別,玩爬蟲也完全是處于興趣愛好,如有不足之處,還望指正。
在互聯網上進行自動數據采集(抓取)這件事和互聯網存在的時間差不多一樣長。今天大眾好像更傾向于用“網絡數據采集”,有時會把網絡數據采集程序稱為網絡機器人(bots)。最常用的方法是寫一個自動化程序向網絡服務器請求數據(通常是用 HTML 表單或其他網頁文件),然后對數據進行解析,提取需要的信息。
說句實在話,如果我的網站總是讓人爬來爬取的,經常被虛擬訪問者騷擾,我也是蠻煩的,而且如果遇到“霸道”一點的爬蟲,都能直接把服務器卡死。因此,我們在爬取別人網站的時候,也多為對方考慮考慮。不過話說回來,我卻沒有這個煩惱,為什么呢?因為我根本就沒有自己的網站。=.=
2 黑科技
網站防采集的前提就是要正確地區分人類訪問用戶和網絡機器人。現在網站有很多技術來防止爬蟲,比如驗證碼,對于一些簡單的數字驗證碼,可以使用訓練好的caffemodel諸如此類的模型去識別,準確率還是可以的。當然,也可以在Github搜一搜關于驗證碼識別的東西,看一看大牛們是怎么玩的。除了這些高大上的,還有一些十分簡單的方法可以讓你的網絡機器人看起來更像人類訪問用戶。
2.1 構造合理的HTTP請求頭
除了處理網站表單,requests 模塊還是一個設置請求頭的利器。HTTP 的請求頭是在你每次向網絡服務器發送請求時,傳遞的一組屬性和配置信息。HTTP 定義了十幾種古怪的請求頭類型,不過大多數都不常用。
每個網站都有不同的請求頭,如何獲取這個請求頭呢?可以用我從前提到過的Fiddler或者審查元素的方法,我們可以根據實際情況進行配置。例如,GET百度根目錄的時候,需要添加的請求頭信息如下:
總結
以上是生活随笔為你收集整理的爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [安全攻防进阶篇] 二.如何学好逆向分析
- 下一篇: Logitech的新网络摄像头软件非常适