索引頁鏈接補全機制的一種方法
一、背景
Spider位于搜索引擎數(shù)據(jù)流的最上游,負責(zé)將互聯(lián)網(wǎng)上的資源采集到本地,提供給后續(xù)檢索使用,是搜索引擎的最主要數(shù)據(jù)來源之一。spider系統(tǒng)的目標(biāo)就是發(fā)現(xiàn)并抓取互聯(lián)網(wǎng)中一切有價值的網(wǎng)頁,為達到這個目標(biāo),首先就是發(fā)現(xiàn)有價值網(wǎng)頁的鏈接,當(dāng)前spider有多種鏈接發(fā)現(xiàn)機制來盡量快而全的發(fā)現(xiàn)資源鏈接,本文主要描述其中一種針對特定索引頁的鏈接補全機制,并給出對這種特定類型的索引頁面的建議處理規(guī)范用于優(yōu)化收錄效果。 一些事
當(dāng)前大多數(shù)互聯(lián)網(wǎng)網(wǎng)站以索引頁和翻頁的形式來組織網(wǎng)站資源,當(dāng)有新資源增加時,老資源往后推移到翻頁系列中。 yixieshi
如下圖所示: yixieshi
圖表1 http://roll.news.sina.com.cn/news/gnxw/gdxw1/index.shtml
?
圖2為18小時后該網(wǎng)頁翻頁系列的第四頁的內(nèi)容,在這段時間內(nèi)新增了三頁多的資源,圖1中紅色矩陣圈到的資源在18個小時后已經(jīng)往后有序推移到第4頁的紅色方塊處。
圖表2 18小時后第四頁 一些事
對spider來說,這種特定類型的索引頁是資源鏈接發(fā)現(xiàn)的一種有效渠道,但是由于spider是定期檢查這些網(wǎng)頁來獲得新增的資源鏈接,檢查的周期同資源鏈接發(fā)布的周期不可避免會有不同(spider會盡量探測網(wǎng)頁的發(fā)布周期,以合理的頻率來檢查網(wǎng)頁),周期不同的時候,資源鏈接很有可能就被推到翻頁序列中,所以spider需要對這種特殊類型的翻頁系列作翻頁補全,從而保證收錄資源的完全。
二、主要思路
本文主要討論這種資源按發(fā)布時間有序排布的網(wǎng)頁,即新發(fā)布的資源排布在翻頁第1頁(或翻頁最后一頁),老的資源往后(或者往前)有序推移的索引頁的補全機制。主要思路是將整個翻頁系列的網(wǎng)頁看成一個整體,綜合判定它們的抓取狀態(tài),通過記錄每次抓取網(wǎng)頁發(fā)現(xiàn)的資源鏈接,然后將此次發(fā)現(xiàn)的資源鏈接與歷史上發(fā)現(xiàn)的資源鏈接作比較,如果有交集,說明該次抓取發(fā)現(xiàn)了所有的新增資源;否則,說明該次抓取并未發(fā)現(xiàn)所有的新增資源,需要繼續(xù)抓取下一頁甚至下幾頁來發(fā)現(xiàn)所有的新增資源。
2.1 資源鏈接是否按照時間排序
判斷資源是否按發(fā)布時間排布是這類頁面的一個必要條件,那么如何判斷資源是否按發(fā)布時間排布呢?如上面圖1所示,有些頁面中每個資源鏈接后面跟隨著對應(yīng)的發(fā)布時間,通過資源鏈接對應(yīng)的時間集合,判斷時間集合是否按大到小或小到大排序,如果是的話,則說明網(wǎng)頁中的資源是按發(fā)布時間有序排布,反之亦然。圖1中資源從上到下對應(yīng)的時間是越來越小的,即是資源按發(fā)布時間有序的。 yixieshi
還有一類網(wǎng)頁,如下面圖3所示,網(wǎng)頁內(nèi)容中有多種排序方式,如按銷量排序,按價格排序,如評論數(shù)排序,按上架時間排序。通過識別和提取當(dāng)前的排序方式,然后判斷當(dāng)前的排序方式是否為按時間排序,如果是,則說明網(wǎng)頁中的資源是按發(fā)布時間有序排布,反之亦然。圖3中的排序方式是按上架時間排序,屬于時間排序方式,所以該網(wǎng)頁發(fā)布的資源是按發(fā)布時間有序的。
另外也會根據(jù)資源鏈接抓回后提取的發(fā)布時間綜合判斷。
圖表3 多種排序方式的索引頁 yixieshi
2.2 補全機制
對于按發(fā)布時間有序排布在索引頁系列的資源鏈接,如何保證新發(fā)布的資源都被收錄呢?如上述所說,在18個小時后,圖1中的資源鏈接已經(jīng)往后有序推移到翻頁第4頁了,如此看,這段時間內(nèi)新增了翻頁第2,3,4頁索引的資源鏈接,那么,spider就需要完全的收錄這些新增的資源;
首先,當(dāng)spider抓取18小時后的第1頁時,將新發(fā)現(xiàn)的資源鏈接集合,與上一次18小時前第1頁索引頁調(diào)度記錄的資源鏈接集合作比較,會發(fā)現(xiàn)兩次調(diào)度發(fā)現(xiàn)的資源鏈接沒有交集,所以就可能存在漏鏈。進而需要繼續(xù)發(fā)起第2頁的調(diào)度,第2頁發(fā)現(xiàn)的資源鏈接集合與之仍然沒有交集,所以還可能存在漏鏈,繼續(xù)發(fā)起第3頁,第4頁的調(diào)度,最終如圖2所示,紅框中的鏈接與上一次索引頁調(diào)度記錄的資源鏈接有交集,因此可以斷定已經(jīng)補全了這段時間內(nèi)新增的資源,從而結(jié)束翻頁系列的調(diào)度,并保證了該翻頁系列的所有鏈接的補全,從而提升搜索產(chǎn)品的收錄效果。 互聯(lián)網(wǎng)的一些事
2.3 翻頁條的識別和翻頁條對應(yīng)的鏈接序列區(qū)塊的識別
為了達到上面的效果,除了需要識別翻頁系列的排序方式是不是按照時間排序,還需要識別索引頁中的翻頁條和其對應(yīng)的鏈接區(qū)塊。
因為沒有翻頁條的識別,spider系統(tǒng)就不可能把這個翻頁序列的所有鏈接綁定起來,整體考慮它們的狀態(tài),那么調(diào)度抓取的結(jié)果就是隨機的,從而不能保證補全效果,當(dāng)前通過網(wǎng)頁中的翻頁的一系列特征,通過機器學(xué)習(xí)的方法來識別網(wǎng)頁中的翻頁區(qū)塊和翻頁深度,以及上一頁,下一頁的鏈接,從而為上述補全機制提供基本數(shù)據(jù)。
另外一方面,即使有了翻頁條的識別,沒有對應(yīng)鏈接區(qū)塊的識別,上述補全機制還是不能工作,因為上述機制需要對比發(fā)現(xiàn)的鏈接的集合來判定終止條件,所以,也需要識別翻頁條對應(yīng)的鏈接區(qū)塊,從而提供翻頁終止條件。
特殊情況下,一個網(wǎng)頁可能包含多個翻頁條,這種情況更需要進行翻頁條和鏈接區(qū)塊的對應(yīng)。
三、建議的方法和標(biāo)準(zhǔn)
當(dāng)前百度spider系統(tǒng)對網(wǎng)頁的類型,網(wǎng)頁中翻頁條的位置,翻頁條對應(yīng)的索引列表,以及列表是否按照時間排序都會做相應(yīng)的判斷,并根據(jù)實際的情況進行處理,但是機器自動的判斷方法畢竟不能做到100%的識別準(zhǔn)確率,所以如果站長能夠通過在頁面中添加一些百度推薦的標(biāo)簽來標(biāo)志相應(yīng)的功能區(qū)域,就可以極大地提高我們識別的準(zhǔn)確率,從而提高spider系統(tǒng)對網(wǎng)站資源發(fā)現(xiàn)的即時性,從而提高網(wǎng)站的收錄效果。 互聯(lián)網(wǎng)的一些事
Spider鏈接補全當(dāng)前最關(guān)心的是網(wǎng)頁的翻頁條和翻頁條對應(yīng)的索引鏈接列表的區(qū)塊,所以可以通過區(qū)塊的元素(譬如div,ul)的class屬性來標(biāo)志相應(yīng)的特征,供百度spider識別使用,建議使用下面的屬性來標(biāo)志: 互聯(lián)網(wǎng)的一些事
表1 支持的CLASS擴展屬性 互聯(lián)網(wǎng)的一些事
譬如百度新聞的頁面可以這樣設(shè)置: 互聯(lián)網(wǎng)的一些事
對翻頁條對應(yīng)的區(qū)塊元素p可以設(shè)置class屬性Baidu_paging_indicator,對該翻頁條對應(yīng)的主體鏈接的區(qū)塊元素div,設(shè)置 Baidu_paging_content_indicator Orderby_posttime,這樣翻頁條和對應(yīng)的鏈接區(qū)塊就對應(yīng)起來,并且告知了百度是按照發(fā)布時間排序的,從而可以優(yōu)化spider系統(tǒng)的抓取行 為,改善站點的收錄效果。 一些事
四、總結(jié)
除了上面說明的鏈接發(fā)現(xiàn)方法,Baidu的抓取系統(tǒng)還有非常多的其他手段來保證對 有價值網(wǎng)站的收錄覆蓋率,上述方法只是針對特定索引頁類型而采取的一種特定的手段,互聯(lián)網(wǎng)站長可以參考使用。站長也可以通過spider的站長平臺來了解 如何獲得更快更好的網(wǎng)站收錄效果,譬如直接通過sitemap協(xié)議推送鏈接。站長平臺地址:http://zhanzhang.baidu.com/,剛剛改版,全新功能呈現(xiàn)。
來源:百度
- 目前還沒評論,等你發(fā)揮!