首頁(yè)技術(shù)文章正文

有哪些防爬蟲/反爬蟲的策略方法?

更新時(shí)間:2022-11-22 來(lái)源:黑馬程序員 瀏覽量:

隨著網(wǎng)絡(luò)爬蟲技術(shù)的普及,互聯(lián)網(wǎng)中出現(xiàn)了越來(lái)越多的網(wǎng)絡(luò)爬蟲,既有為搜索引擎采集數(shù)據(jù)的網(wǎng)絡(luò)爬蟲,也有很多其他的開發(fā)者自己編寫的網(wǎng)絡(luò)爬蟲。對(duì)于一個(gè)內(nèi)容型驅(qū)動(dòng)的網(wǎng)站而言,被網(wǎng)絡(luò)爬蟲訪問是不可避免的。

盡管網(wǎng)絡(luò)爬蟲履行著Robots協(xié)議,但是很多網(wǎng)絡(luò)爬蟲的抓取行為不太合理,經(jīng)常同時(shí)發(fā)送上百個(gè)請(qǐng)求重復(fù)訪問網(wǎng)站。這種抓取行為會(huì)給網(wǎng)站的服務(wù)器增加巨大的處理開銷,輕則降低網(wǎng)站的訪問速度,重則導(dǎo)致網(wǎng)站無(wú)法被訪問,給網(wǎng)站造成一定的壓力。

因此,網(wǎng)站管理員會(huì)根據(jù)網(wǎng)絡(luò)爬蟲的行為特點(diǎn),從來(lái)訪的客戶端程序中甄選出網(wǎng)絡(luò)爬蟲,并采取一些防爬蟲措施來(lái)阻止網(wǎng)絡(luò)爬蟲的訪問。與此同時(shí),網(wǎng)絡(luò)爬蟲會(huì)采取一些應(yīng)對(duì)策略繼續(xù)訪問網(wǎng)站,常見的應(yīng)對(duì)策略包括添加User-Agent字段、降低訪問頻率、設(shè)置代理服務(wù)器、識(shí)別驗(yàn)證碼,關(guān)于這幾種應(yīng)對(duì)策略的介紹如下。

1.添加User-Agent字段

瀏覽器在訪問網(wǎng)站時(shí)會(huì)攜帶固定的User-Agent(用戶代理,用于描述瀏覽器的類型及版本、操作系統(tǒng)及版本、瀏覽器插件、瀏覽器語(yǔ)言等信息),向網(wǎng)站表明自己的真實(shí)身份。

網(wǎng)絡(luò)爬蟲每次訪問網(wǎng)站時(shí)可以模仿瀏覽器的上述行為,也就是在請(qǐng)求網(wǎng)頁(yè)時(shí)攜帶User-Agent,將自己偽裝成一個(gè)瀏覽器,如此便可以繞過網(wǎng)站的檢測(cè),避免出現(xiàn)被網(wǎng)站服務(wù)器

直接拒絕訪問的情況。

2.降低訪問頻率

如果同一賬戶在較短的時(shí)間內(nèi)多次訪問了網(wǎng)站,那么網(wǎng)站運(yùn)維人員會(huì)推斷此種訪問行為可能是網(wǎng)絡(luò)爬蟲的行為,并將該賬戶加入黑名單以禁止其訪問網(wǎng)站。為防止網(wǎng)站運(yùn)維人員從

訪問量上推斷出網(wǎng)絡(luò)爬蟲的身份,可以降低網(wǎng)絡(luò)爬蟲訪問網(wǎng)站的頻率。不過,這種方式會(huì)降低網(wǎng)絡(luò)爬蟲的抓取效率。為了彌補(bǔ)這個(gè)不足,可以適當(dāng)?shù)卣{(diào)整一些操作,如讓網(wǎng)絡(luò)爬蟲每抓

取一次頁(yè)面數(shù)據(jù)就休息幾秒,或者限制每天抓取的網(wǎng)頁(yè)的數(shù)量。

3.設(shè)置代理服務(wù)器

網(wǎng)絡(luò)爬蟲在訪問網(wǎng)站時(shí)若反復(fù)使用同一IP地址,則極易被網(wǎng)站識(shí)別身份后屏蔽、阻止、封禁等。此時(shí)可以在網(wǎng)絡(luò)爬蟲和Web服務(wù)器之間設(shè)置代理服務(wù)器。有了代理服務(wù)器之后,網(wǎng)

絡(luò)爬蟲會(huì)先將請(qǐng)求發(fā)送給代理服務(wù)器,代理服務(wù)器再轉(zhuǎn)發(fā)給服務(wù)器,這時(shí)服務(wù)器記錄的是代理服務(wù)器的IP地址(簡(jiǎn)稱代理IP),而不是網(wǎng)絡(luò)爬蟲所在設(shè)備的IP地址。

互聯(lián)網(wǎng)中有一些網(wǎng)站提供了大量的代理IP,可以將這些代理IP進(jìn)行存儲(chǔ),以備不時(shí)之需。不過,很多代理IP的使用壽命非常短,需要通過一套完整的機(jī)制校驗(yàn)已有代理IP的有效性。

4.識(shí)別驗(yàn)證碼

有些網(wǎng)站在檢測(cè)到某個(gè)客戶端的IP地址訪問次數(shù)過于頻繁時(shí),會(huì)要求該客戶端進(jìn)行登錄驗(yàn)證,并隨機(jī)提供一個(gè)驗(yàn)證碼。為了應(yīng)對(duì)這種突發(fā)情況,網(wǎng)絡(luò)爬蟲除了要輸入正確的賬戶密

碼之外,還要像人類一樣通過滑動(dòng)或點(diǎn)擊行為識(shí)別驗(yàn)證碼,如此才能繼續(xù)訪問網(wǎng)站。由于驗(yàn)證碼的種類較多,不同的驗(yàn)證碼需要采用不同的技術(shù)進(jìn)行識(shí)別,具有一定的技術(shù)難度。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!