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