隱藏鏈接反爬蟲的原理和破解方法~

來源 | 志斌的python筆記
如下圖所示,網(wǎng)站將訪問詳情頁(yè)的URL放到網(wǎng)頁(yè)標(biāo)簽中去,所以我們?cè)谂廊r(shí),首先要先定位到這些存在URL的標(biāo)簽,然后將URL提取出來,對(duì)其發(fā)送請(qǐng)求,才能夠訪問詳情頁(yè),并提取其數(shù)據(jù)。

提取這個(gè)標(biāo)簽中的URL,相對(duì)于我們現(xiàn)在的水平來說,應(yīng)該是一個(gè)十分簡(jiǎn)單的事情,但是當(dāng)志斌書寫代碼來實(shí)現(xiàn)時(shí),卻顯示被反爬了,當(dāng)時(shí)我就人傻了,志斌就趕緊重新觀察網(wǎng)頁(yè),尋找反爬蟲的機(jī)制,終于在存儲(chǔ)URL的標(biāo)簽中發(fā)現(xiàn)了問題。

原來,在寫爬蟲的時(shí)候,我們觀察并實(shí)驗(yàn)了前幾個(gè)URL后,發(fā)現(xiàn)能夠正常獲取數(shù)據(jù),就默認(rèn)全局都應(yīng)該這樣寫,但實(shí)際上并不是,這里面存儲(chǔ)了隱藏鏈接用于反爬蟲,如下圖:

這就是典型的隱藏鏈接反爬蟲,將真假數(shù)據(jù)混在一起,當(dāng)訪問假數(shù)據(jù)時(shí),默認(rèn)為爬蟲程序。今天就來給大家分享一下,如何破解特征識(shí)別反爬蟲之隱藏鏈接反爬蟲。
01
原理
由于反爬蟲機(jī)制是存在標(biāo)簽樣式中的,并不存在頁(yè)面中,所以用戶在正常訪問時(shí)是不會(huì)觸碰到它的。
但是爬蟲程序就不同了,因?yàn)樗菑木W(wǎng)頁(yè)標(biāo)簽中獲取數(shù)據(jù)的,一旦爬蟲工程師沒有注意到隱藏在標(biāo)簽列表中的特殊URL,就會(huì)導(dǎo)致爬蟲程序觸發(fā)反爬蟲機(jī)制,從而被反爬限制。
02
破解
這類反爬蟲主要存在于有許多標(biāo)簽列表的網(wǎng)頁(yè)中。
因?yàn)榕老x工程師在分析網(wǎng)頁(yè)時(shí),通常只會(huì)分析一個(gè)點(diǎn),然后由點(diǎn)及面,畢竟即使爬蟲就是為了減少工作量,如果全部觀察了,那用爬蟲也沒必要了。
隱藏鏈接反爬蟲主要是通過封禁IP來進(jìn)行反爬,所以爬蟲工程師在爬取時(shí)可以加上IP代理池,在這篇文章中我們已經(jīng)詳細(xì)介紹了搭建IP代理池的方法,有興趣的讀者可以看看。
當(dāng)我們?cè)谂廊?biāo)簽列表較多或者數(shù)據(jù)分頁(yè)較多的網(wǎng)站時(shí),遇到分析的網(wǎng)頁(yè)可以正常爬取,但是后面的數(shù)據(jù)無法正常爬取時(shí),我們就要考慮自己是否是遇到了隱藏鏈接反爬蟲了。
此時(shí)我們要加大對(duì)數(shù)據(jù)分析的范圍,找到隱藏鏈接和真正鏈接之間的區(qū)別,然后在程序中進(jìn)一步甄別這兩種鏈接之后,就破解這類反爬蟲了~
03
小結(jié)
1. 本文詳細(xì)介紹了如何破解隱藏鏈接反爬蟲,這類反爬蟲要存在于標(biāo)簽列表較多的網(wǎng)站中,或者網(wǎng)頁(yè)數(shù)據(jù)較多的網(wǎng)站,其中最典型的例子就是爬取微博評(píng)論爬取微博下全部評(píng)論數(shù)據(jù)~。
2. 當(dāng)我們遇到分析的部分可以正常爬取,但是后面卻被反爬,這時(shí)候就要考慮是否是否是遇到了隱藏鏈接反爬蟲了。
3. 隱藏鏈接反爬蟲屬于一類非常簡(jiǎn)單的反爬蟲,它主要是利用了爬蟲工程師的粗心,只要我們足夠細(xì)心,那么這類反爬蟲對(duì)我們來說是輕而易舉的。
4. 本文僅供學(xué)習(xí)參考,不做它用。
