URL的問題是SEO過程中的一個基本問題,做一個新網站也好,優化現有的網站也好,都繞不開這一點。這兩篇文章就來大體總結一下URL的規劃應該怎么做。
在開始講這些問題之前,需要先閱讀完以下文檔:
《優化網站的抓取與收錄》 http://www.google.cn/ggblog/googlewebmaster-cn/2009/08/blog-post.html
《谷歌搜索引擎入門指南》第7頁到11頁。 點此下載
《創建方便 Google 處理的網址結構》 http://www.google.com/support/webmasters/bin/answer.py?hl=cn&answer=76329
這些都是google官方的文檔,講述了各種各樣的規則。這些對百度也是同樣適用的,因為它是針對爬蟲的特性提出來的,并不是只有某個搜索引擎才適用。
看完上面的那些這些規則,發現翻來覆去講得都是怎么讓爬蟲能非常順暢的抓取完整個網站。其實絕大部分網站都存在這樣或那樣的問題的,也包括我這個博客,在抓取方面也存在一些問題。但是看在每篇博文都能被收錄的情況下,也就不去優化了。但是對于很多收錄還成問題的網站(特別是大中型網站)來說,就要好好規劃一下了。大家可以用HTTrack抓取semyj這個博客看看,就能發現為什么我這么說了。(誰能一天之內抓取完這個博客的人請告訴我。)
還是先從搜索引擎的處境講起吧。正如Google在文章中寫道的那樣:
網絡世界極其龐大;每時每刻都在產生新的內容。Google 本身的資源是有限的,當面對幾近無窮無盡的網絡內容的時候,Googlebot 只能找到和抓取其中一定比例的內容。然后,在我們已經抓取到的內容中,我們也只能索引其中的一部分。 URLs 就像網站和搜索引擎抓取工具之間的橋梁: 為了能夠抓取到您網站的內容,抓取工具需要能夠找到并跨越這些橋梁(也就是找到并抓取您的URLs)。
這段話很好的總結了搜索引擎所面臨的處境,那么爬蟲在處理URL的時候會遇到哪些問題呢?
我們先來看重復URL的問題,這里說的重復URL是指同一個網站內的不同頁面,都存在很多完全相同的URL。如:
http://www.semyj.com/archives/1097 和 http://www.semyj.com/archives/1114 這兩個頁面。
模板部分的URL是一樣的
雖然頁面不同,但是他們公用的部分,URL地址是一樣的。看起來如果不同的爬蟲抓取到這些頁面的時候,會重復抓取,從而浪費很多不必要的時間。 這確實是一個問題,不過這個問題搜索引擎倒是基本解決好了。實際上,爬蟲的抓取模式不是像我們理解的那樣看到一個網頁就開始抓取一個網頁的。
爬蟲順著一個個的URL在互聯網上抓取網頁,它一邊下載這個網頁,一邊在提取這個網頁中的鏈接。假設從搜索引擎某一個節點出來的爬蟲有爬蟲A、爬蟲B、爬蟲C,當它們到達semyj這個網站的時候,每個爬蟲都會抓取到很多URL,然后他們都會把那個頁面上所有的鏈接都放在一個公用的“待抓取列表”里。(可以用lynx在線版模擬一下爬蟲提取鏈接。)