QQ在線客服

當(dāng)前位置:首頁(yè)> 建站> 經(jīng)驗(yàn)心得

什么是蜘蛛池程序?

2019-06-13 15:14 來(lái)源: qclog 編輯: 佚名 瀏覽(892)人   

程序,是搜索引擎的自動(dòng)程序,用來(lái)爬取網(wǎng)頁(yè)、圖片和視頻等內(nèi)容,然后分門別類建立數(shù)據(jù)索引庫(kù),方便用戶在搜索引擎中找到想獲取的信息。今天陶水水SEO給大家介紹蜘蛛程序、蜘蛛程序通道、蜘蛛程序陷阱等知識(shí),我們一起來(lái)看看吧。

timg-5.jpg

  什么是蜘蛛程序(spider)?

蜘蛛也稱為機(jī)器人,指的是搜索引擎運(yùn)行的計(jì)算機(jī)程序,沿著頁(yè)面上的超鏈接發(fā)現(xiàn)和爬行更多頁(yè)面,抓取頁(yè)面內(nèi)容,關(guān)入搜索引擎數(shù)據(jù)庫(kù)。


蜘蛛程序就是爬行程序,是搜索引擎的一部分,負(fù)責(zé)在互聯(lián)網(wǎng)上定位和收這樣能夠響應(yīng)搜索者的請(qǐng)求,成功的搜索引擎營(yíng)銷取決于爬的網(wǎng)頁(yè)。股票配資


 


什么是蜘蛛程序

  什么是蜘蛛程序通道(spider paths)?

蜘蛛程序通道是用于站點(diǎn)導(dǎo)航的輕松通道,例如站點(diǎn)地圖,分類地圖,國(guó)家地圖,或者在關(guān)鍵網(wǎng)頁(yè)底部的文本鏈接,蜘蛛通道包括任何能使蜘蛛程序輕松找到你有網(wǎng)頁(yè)的方法。


 



  什么是蜘蛛程序陷阱(spider trap)?

蜘蛛陷阱指的是由于網(wǎng)站結(jié)構(gòu)的某種特征,使搜索引擎陷入無(wú)限循環(huán),無(wú)法停止爬行,最典型的蜘蛛陷阱是某些頁(yè)面上的萬(wàn)年歷,搜索引擎可以一直單擊下一個(gè)月陷入無(wú)限循環(huán)。


蜘蛛程序陷阱是阻止蜘蛛程序爬些網(wǎng)頁(yè)顯示的技術(shù)方法,這些手段能很好地配合瀏覽器,但對(duì)蜘蛛程序就構(gòu)成了阻礙,蜘蛛陷阱包括javascript下拉菜單以及有些種類的重定向。


  百度蜘蛛的運(yùn)行原理是什么?

1、通過(guò)百度蜘蛛下載回來(lái)的網(wǎng)頁(yè)放到補(bǔ)充數(shù)據(jù)區(qū),通過(guò)各種程序計(jì)算過(guò)后才放到檢索區(qū),才會(huì)形成穩(wěn)定的排名,所以說(shuō)只要下載回來(lái)的東西都可以通過(guò)指令找到,補(bǔ)充數(shù)據(jù)是不穩(wěn)定的,有可能在各種計(jì)算的過(guò)程中給k掉,檢索區(qū)的數(shù)據(jù)排名是相對(duì)比較穩(wěn)定的,百度目 前是緩存機(jī)制和補(bǔ)充數(shù)據(jù)相結(jié)合的,正在向補(bǔ)充數(shù)據(jù)轉(zhuǎn)變,這也是目 前百度收錄困難的原因,也是很多站點(diǎn)今天給k了明天又放出來(lái)的原因。


2、深度優(yōu)先和權(quán)重優(yōu)先,百度蜘蛛抓頁(yè)面的時(shí)候從起始站點(diǎn)(即種子站點(diǎn)指的是一些門戶站點(diǎn))是廣度優(yōu)先抓取是為了抓取更多的網(wǎng)址,深度優(yōu)先抓取的目的是為了抓取高質(zhì)量的網(wǎng)頁(yè),這個(gè)策略是由調(diào)度來(lái)計(jì)算和分配的,百度蜘蛛只負(fù)責(zé)抓取,權(quán)重優(yōu)先是指反向連接較多的頁(yè)面的優(yōu)先抓取,這也是調(diào)度的一種策略,一般情況下網(wǎng)頁(yè)抓取抓到40%是正常范圍,60%算很好,100%是不可能的,當(dāng)然抓取的越多越好。


  如何寫爬取鏈接的蜘蛛小程序?

1、打開并讀取目標(biāo)網(wǎng)頁(yè)內(nèi)容,可以使用urllib2、request等庫(kù);


2、解析網(wǎng)頁(yè)內(nèi)容,尋找外鏈的鏈接地址。可以使用re寫正則表達(dá)式來(lái)處理(類似于抓字段并提取其中的一部分),也可以通過(guò)beautifulsoup等專門的html解析庫(kù)來(lái)處理;在線配資


3、從外鏈地址中提取網(wǎng)站名稱。這個(gè)應(yīng)該用re就可以簡(jiǎn)單解決了;


4、比較此次獲取的網(wǎng)站名稱、之前存儲(chǔ)的網(wǎng)站名稱。如果重復(fù),則跳過(guò);如果無(wú)重復(fù),則保存此次獲取的網(wǎng)站名稱。


5、定時(shí)輸出保存搜索結(jié)果。不停循環(huán)上述過(guò)程,直到達(dá)到你的設(shè)計(jì)目標(biāo)。


不過(guò)需要注意的是:


1、有一些網(wǎng)站不希望被爬蟲爬取,會(huì)留有robot.txt文件進(jìn)行說(shuō)明。爬蟲程序最好尊重別人設(shè)定的限制。


2、為了減小對(duì)目標(biāo)網(wǎng)站的訪問(wèn)負(fù)擔(dān),建議不要在短時(shí)間內(nèi)對(duì)某一個(gè)網(wǎng)站發(fā)起大量鏈接,可以用time.sleep()等方式均衡負(fù)載。


以上只是最簡(jiǎn)單的思路,根據(jù)實(shí)際任務(wù)情況的不同,可能會(huì)有很多需要擴(kuò)展的地方,比如:


1、有一些網(wǎng)站要求用戶驗(yàn)證,需要打開網(wǎng)頁(yè)時(shí)特別設(shè)置;


2、網(wǎng)站編碼問(wèn)題,特別是正則表達(dá)式的編碼要和網(wǎng)頁(yè)編碼相一致(特別是re搜索中文的時(shí)候);


3、連接并打開網(wǎng)頁(yè)是否成功?不成功應(yīng)當(dāng)怎么處理?


4、有一些網(wǎng)頁(yè)內(nèi)容可能是通過(guò)ajax動(dòng)態(tài)加載的,這可能就需要額外的解決方案了(比如selenimum, phantomJS等等)。


5、有時(shí)為了提高抓取效率需要進(jìn)行多線程擴(kuò)充,這就涉及到Queue、multithreading等許多額外的庫(kù)了。


【版權(quán)與免責(zé)聲明】如發(fā)現(xiàn)內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息發(fā)郵件至 kefu@2898.com ,我們將及時(shí)溝通與處理。 本站內(nèi)容除了2898站長(zhǎng)資源平臺(tái)( www.afrimangol.com )原創(chuàng)外,其它均為網(wǎng)友轉(zhuǎn)載內(nèi)容,涉及言論、版權(quán)與本站無(wú)關(guān)。