一、什么是爬蟲陷阱:
“蜘蛛陷阱”是阻止蜘蛛程序爬行網(wǎng)站的障礙物,一些網(wǎng)站設(shè)計(jì)技術(shù)對搜索引擎說很不友好,不利于蜘蛛爬行和抓取,這些技術(shù)被稱為蜘蛛陷阱。 最大的特點(diǎn)是當(dāng)蜘蛛抓取某個(gè)特定URL的時(shí)候,它便進(jìn)入了無限循環(huán),只有入口,沒有出口。
爬蟲陷阱
二、常見的“蜘蛛陷阱”有哪些:
1、站內(nèi)搜索
這是一個(gè)常見且容易造成“蜘蛛陷阱”的地方,當(dāng)你試圖在站內(nèi)搜索某些特定關(guān)鍵詞的時(shí)候,如果類似search.php?q=這樣的URL地址被搜索引擎抓取與收錄,那么很可能產(chǎn)生大量無意義的搜索結(jié)果頁面。
解決方法:你可以通過Robots.txt這個(gè)文件,屏蔽動態(tài)參數(shù)。
2、電商產(chǎn)品
如果你以往有過操作電商網(wǎng)站的經(jīng)歷,那么你會遇到產(chǎn)品SKU的多樣性的問題,同一個(gè)主題內(nèi)容,會根據(jù)SKU的不同,產(chǎn)生多個(gè)URL,造成大量的內(nèi)容重復(fù)頁面,這也導(dǎo)致嚴(yán)重浪費(fèi)蜘蛛抓取頻率。還有一種特殊的“蜘蛛陷阱”與電商產(chǎn)品頁面類似,就是動態(tài)的內(nèi)容插入,這也往往導(dǎo)致蜘蛛陷入溫柔的陷阱。
解決方法:確保URL的規(guī)范性,你可以試圖利用rel=canonical這個(gè)標(biāo)簽來解決類似問題。
3、Flash網(wǎng)站
為了滿足用戶的視覺體驗(yàn),建站公司通常會使用Flash網(wǎng)站,給用戶搭建企業(yè)官網(wǎng),這樣看起來非常美觀,但由于目前搜索引擎并不能很好的抓取與識別flash內(nèi)容,往往導(dǎo)致站點(diǎn)排名很難提升。
解決方法:不要做整站flash,盡量將flash嵌入網(wǎng)頁內(nèi)容的一部分。
4、限制性內(nèi)容
對于一些站點(diǎn),出去吸引粉絲的目的,很多內(nèi)容只有登錄才能查看,特別是一些強(qiáng)制cookie的操作,這誘導(dǎo)與欺騙了蜘蛛,它很難識別內(nèi)容,并且不斷的嘗試抓取這個(gè)URL。
解決方法:針對淮安網(wǎng)站建設(shè),盡量避免采用這種策略,去吸引用戶。
爬蟲陷阱
三:如何識別“蜘蛛陷阱”。對于識別蜘蛛陷阱的方法,特別容易,你只需要通過如下內(nèi)容:
1、網(wǎng)站日志:利用工具讀取當(dāng)日蜘蛛抓取URL的內(nèi)容,如果發(fā)現(xiàn)特殊的URL地址,那么值得進(jìn)一步關(guān)注。
2、抓取頻率:查看百度搜索資源平臺中抓取頻率,如果某一天數(shù)值特別大,那么很可能陷入蜘蛛陷阱。
四、爬蟲的基本原理,網(wǎng)絡(luò)爬蟲的基本工作流程如下:
1、首先選取一部分精心挑選的種子URL;
2、將這些URL放入待抓取URL隊(duì)列;
3、從待抓取URL隊(duì)列中取出待抓取在URL,解析DNS,并且得到主機(jī)的ip,并將URL對應(yīng)的網(wǎng)頁下載下來,存儲進(jìn)已下載網(wǎng)頁庫中。此外,將這些URL放進(jìn)已抓取URL隊(duì)列。
4、分析已抓取URL隊(duì)列中的URL,分析頁面里包含的其他URL,并且將URL放入待抓取URL隊(duì)列,從而進(jìn)入下一個(gè)循環(huán)。
五、爬蟲爬取難點(diǎn)匯總:
1、環(huán)路:網(wǎng)絡(luò)爬蟲有時(shí)候會陷入循環(huán)或者環(huán)路中,比如從頁面 A,A 鏈接到頁面 B,B 鏈接 頁面C,頁面 C 又會鏈接到頁面 A。這樣就陷入到環(huán)路中。
環(huán)路造成的影響:
1.1、消耗網(wǎng)絡(luò)帶寬,無法獲取其他頁面
1.2、對 Web 淮安服務(wù)器也是負(fù)擔(dān),可能擊垮該站點(diǎn),可能阻止正常用戶訪問該站點(diǎn)
1.3、即使沒有性能影響,但獲取大量重復(fù)頁面也導(dǎo)致數(shù)據(jù)冗余
2、URL別名:有些 url 名稱不一樣,但是指向同一個(gè)資源。
爬蟲陷阱
3、動態(tài)虛擬空間:比如日歷程序,它會生成一個(gè)指向下一月的鏈接,真正的用戶是不會不停地請求下個(gè)月的鏈接的。但是不了解這內(nèi)容特性的爬蟲蜘蛛可能會不斷向這些資源發(fā)出無窮的請求。
以上文章來源于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系創(chuàng)一網(wǎng)的客服處理。謝謝!