2023-10-09 分類(lèi): 網(wǎng)站建設(shè)
優(yōu)秀爬蟲(chóng)的特性
優(yōu)秀爬蟲(chóng)的特性對(duì)于不同的應(yīng)用來(lái)說(shuō),可能實(shí)現(xiàn)的方式各有差異,但是實(shí)用的爬蟲(chóng)都應(yīng)該具備以下特性:
1.高性能
互聯(lián)網(wǎng)的網(wǎng)頁(yè)數(shù)量是海量的,所以爬蟲(chóng)的性能至關(guān)重要。這里的性能主要是指爬蟲(chóng)下載網(wǎng)頁(yè)的抓取速度,常見(jiàn)的評(píng)價(jià)方式是以爬蟲(chóng)每秒能夠下載的網(wǎng)頁(yè)數(shù)量作為性能指標(biāo),單位時(shí)間能夠下載的網(wǎng)頁(yè)數(shù)量越多,爬蟲(chóng)的性能越高。
要提高爬蟲(chóng)的性能,在設(shè)計(jì)時(shí)程序訪問(wèn)磁盤(pán)的操作方法及具體實(shí)現(xiàn)時(shí)數(shù)據(jù)結(jié)構(gòu)的選擇很關(guān)鍵,比如對(duì)于待抓取URL隊(duì)列和已抓取URL隊(duì)列,因?yàn)閁RL數(shù)量非常大,不同實(shí)現(xiàn)方式性能表現(xiàn)迥異,所以高效的數(shù)據(jù)結(jié)構(gòu)對(duì)于爬蟲(chóng)性能影響很大。
2.可擴(kuò)展性
即使單個(gè)爬蟲(chóng)的性能很高,要將所有網(wǎng)頁(yè)都下載到本地,仍然需要相當(dāng)長(zhǎng)的時(shí)間周期,為了能夠盡可能縮短抓取周期,爬蟲(chóng)系統(tǒng)應(yīng)該有很好地可擴(kuò)展性,即很容易通過(guò)增加抓取服務(wù)器和爬蟲(chóng)數(shù)量來(lái)達(dá)到此目的。
目前實(shí)用的大型網(wǎng)絡(luò)爬蟲(chóng)一定是分布式運(yùn)行的,即多臺(tái)服務(wù)器專(zhuān)做抓取。每臺(tái)服務(wù)器部署多個(gè)爬蟲(chóng),每個(gè)爬蟲(chóng)多線程運(yùn)行,通過(guò)多種方式增加并發(fā)性。
對(duì)于巨型的搜索引擎服務(wù)商來(lái)說(shuō),可能還要在全球范圍、不同地域分別部署數(shù)據(jù)中心,爬蟲(chóng)也被分配到不同的數(shù)據(jù)中心,這樣對(duì)于提高爬蟲(chóng)系統(tǒng)的整體性能是很有幫助的。
3.健壯性
爬蟲(chóng)要訪問(wèn)各種類(lèi)型的網(wǎng)站服務(wù)器,可能會(huì)遇到很多種非正常情況:比如網(wǎng)頁(yè)HTML編碼不規(guī)范、 被抓取服務(wù)器突然死機(jī),甚至爬蟲(chóng)陷阱等。爬蟲(chóng)對(duì)各種異常情況能否正確處理非常重要,否則可能會(huì)不定期停止工作,這是無(wú)法忍受的。
從另外一個(gè)角度來(lái)講,假設(shè)爬蟲(chóng)程序在抓取過(guò)程中死掉,或者爬蟲(chóng)所在的服務(wù)器宕機(jī),健壯的爬蟲(chóng)應(yīng)能做到:再次啟動(dòng)爬蟲(chóng)時(shí),能夠恢復(fù)之前抓取的內(nèi)容和數(shù)據(jù)結(jié)構(gòu),而不是每次都需要把所有工作完全從頭做起,這也是爬蟲(chóng)健壯性的一種體現(xiàn)。
4.友好性
爬蟲(chóng)的友好性包含兩方面的含義:一是保護(hù)網(wǎng)站的部分私密性;另一是減少被抓取網(wǎng)站的網(wǎng)絡(luò)負(fù)載。爬蟲(chóng)抓取的對(duì)象是各類(lèi)型的網(wǎng)站,對(duì)于網(wǎng)站所有者來(lái)說(shuō),有些內(nèi)容并不希望被所有人搜到,所以需要設(shè)定協(xié)議,來(lái)告知爬蟲(chóng)哪些內(nèi)容是不允許抓取的。目前有兩種主流的方法可達(dá)到此目的:爬蟲(chóng)禁抓協(xié)議和網(wǎng)頁(yè)禁抓標(biāo)記。
爬蟲(chóng)禁抓協(xié)議指的是由網(wǎng)站所有者生成一個(gè)指定的文件robot.txt,并放在網(wǎng)站服務(wù)器的根目錄下,這個(gè)文件指明了網(wǎng)站中哪些目錄下的網(wǎng)頁(yè)是不允許爬蟲(chóng)抓取的。具有友好性的爬蟲(chóng)在抓取該網(wǎng)站的網(wǎng)頁(yè)前,首先要讀取robot.txt文件,對(duì)于禁止抓取的網(wǎng)頁(yè)不進(jìn)行下載。
網(wǎng)頁(yè)禁抓標(biāo)記一般在網(wǎng)頁(yè)的HTML代碼里加入meta name=”robots”標(biāo)記,content字段指出允許或者不允許爬蟲(chóng)的哪些行為。可以分為兩種情形:一種是告知爬蟲(chóng)不要索引該網(wǎng)頁(yè)內(nèi)容,以noindex作為標(biāo)記;另外一種情形是告知爬蟲(chóng)不要抓取網(wǎng)頁(yè)所包含的鏈接,以nofollow作為標(biāo)記。通過(guò)這種方式,可以達(dá)到對(duì)網(wǎng)頁(yè)內(nèi)容的一種隱私保護(hù)。
遵循以上協(xié)議的爬蟲(chóng)可以被認(rèn)為是友好的,這是從保護(hù)私密性的角度來(lái)考慮的;另外一種友好性則是,希望爬蟲(chóng)對(duì)某網(wǎng)站的訪問(wèn)造成的網(wǎng)路負(fù)載較低。
爬蟲(chóng)一般會(huì)根據(jù)網(wǎng)頁(yè)的鏈接連續(xù)獲取某網(wǎng)站的網(wǎng)頁(yè),如果爬蟲(chóng)訪問(wèn)網(wǎng)站頻率過(guò)高,會(huì)給網(wǎng)站服務(wù)器造成很大的訪問(wèn)壓力,有時(shí)候甚至?xí)绊懢W(wǎng)站的正常訪問(wèn),造成類(lèi)似DOS攻擊的效果。
為了減少網(wǎng)站的網(wǎng)絡(luò)負(fù)載,友好性的爬蟲(chóng)應(yīng)該在抓取策略部署時(shí)考慮每個(gè)被抓取網(wǎng)站的負(fù)載,在盡可能不影響爬蟲(chóng)性能的情況下,減少對(duì)單一站點(diǎn)短期內(nèi)的高頻訪問(wèn)。
名稱(chēng)欄目:seo優(yōu)化公司了解入門(mén)爬蟲(chóng)技術(shù)原理三
網(wǎng)站URL:http://vcdvsql.cn/news26/284926.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、關(guān)鍵詞優(yōu)化、軟件開(kāi)發(fā)、網(wǎng)站收錄、面包屑導(dǎo)航、用戶(hù)體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容