更新時間:2022-11-22 來源:黑馬程序員 瀏覽量:
隨著網(wǎng)絡(luò)爬蟲技術(shù)的普及,互聯(lián)網(wǎng)中出現(xiàn)了越來越多的網(wǎng)絡(luò)爬蟲,既有為搜索引擎采集數(shù)據(jù)的網(wǎng)絡(luò)爬蟲,也有很多其他的開發(fā)者自己編寫的網(wǎng)絡(luò)爬蟲。對于一個內(nèi)容型驅(qū)動的網(wǎng)站而言,被網(wǎng)絡(luò)爬蟲訪問是不可避免的。
盡管網(wǎng)絡(luò)爬蟲履行著Robots協(xié)議,但是很多網(wǎng)絡(luò)爬蟲的抓取行為不太合理,經(jīng)常同時發(fā)送上百個請求重復(fù)訪問網(wǎng)站。這種抓取行為會給網(wǎng)站的服務(wù)器增加巨大的處理開銷,輕則降低網(wǎng)站的訪問速度,重則導(dǎo)致網(wǎng)站無法被訪問,給網(wǎng)站造成一定的壓力。
因此,網(wǎng)站管理員會根據(jù)網(wǎng)絡(luò)爬蟲的行為特點,從來訪的客戶端程序中甄選出網(wǎng)絡(luò)爬蟲,并采取一些防爬蟲措施來阻止網(wǎng)絡(luò)爬蟲的訪問。與此同時,網(wǎng)絡(luò)爬蟲會采取一些應(yīng)對策略繼續(xù)訪問網(wǎng)站,常見的應(yīng)對策略包括添加User-Agent字段、降低訪問頻率、設(shè)置代理服務(wù)器、識別驗證碼,關(guān)于這幾種應(yīng)對策略的介紹如下。
瀏覽器在訪問網(wǎng)站時會攜帶固定的User-Agent(用戶代理,用于描述瀏覽器的類型及版本、操作系統(tǒng)及版本、瀏覽器插件、瀏覽器語言等信息),向網(wǎng)站表明自己的真實身份。
網(wǎng)絡(luò)爬蟲每次訪問網(wǎng)站時可以模仿瀏覽器的上述行為,也就是在請求網(wǎng)頁時攜帶User-Agent,將自己偽裝成一個瀏覽器,如此便可以繞過網(wǎng)站的檢測,避免出現(xiàn)被網(wǎng)站服務(wù)器
直接拒絕訪問的情況。
如果同一賬戶在較短的時間內(nèi)多次訪問了網(wǎng)站,那么網(wǎng)站運維人員會推斷此種訪問行為可能是網(wǎng)絡(luò)爬蟲的行為,并將該賬戶加入黑名單以禁止其訪問網(wǎng)站。為防止網(wǎng)站運維人員從
訪問量上推斷出網(wǎng)絡(luò)爬蟲的身份,可以降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)站的頻率。不過,這種方式會降低網(wǎng)絡(luò)爬蟲的抓取效率。為了彌補這個不足,可以適當(dāng)?shù)卣{(diào)整一些操作,如讓網(wǎng)絡(luò)爬蟲每抓
取一次頁面數(shù)據(jù)就休息幾秒,或者限制每天抓取的網(wǎng)頁的數(shù)量。
網(wǎng)絡(luò)爬蟲在訪問網(wǎng)站時若反復(fù)使用同一IP地址,則極易被網(wǎng)站識別身份后屏蔽、阻止、封禁等。此時可以在網(wǎng)絡(luò)爬蟲和Web服務(wù)器之間設(shè)置代理服務(wù)器。有了代理服務(wù)器之后,網(wǎng)
絡(luò)爬蟲會先將請求發(fā)送給代理服務(wù)器,代理服務(wù)器再轉(zhuǎn)發(fā)給服務(wù)器,這時服務(wù)器記錄的是代理服務(wù)器的IP地址(簡稱代理IP),而不是網(wǎng)絡(luò)爬蟲所在設(shè)備的IP地址。
互聯(lián)網(wǎng)中有一些網(wǎng)站提供了大量的代理IP,可以將這些代理IP進行存儲,以備不時之需。不過,很多代理IP的使用壽命非常短,需要通過一套完整的機制校驗已有代理IP的有效性。
有些網(wǎng)站在檢測到某個客戶端的IP地址訪問次數(shù)過于頻繁時,會要求該客戶端進行登錄驗證,并隨機提供一個驗證碼。為了應(yīng)對這種突發(fā)情況,網(wǎng)絡(luò)爬蟲除了要輸入正確的賬戶密
碼之外,還要像人類一樣通過滑動或點擊行為識別驗證碼,如此才能繼續(xù)訪問網(wǎng)站。由于驗證碼的種類較多,不同的驗證碼需要采用不同的技術(shù)進行識別,具有一定的技術(shù)難度。