如何和網(wǎng)絡(luò)爬蟲對話
看淘寶搜索技術(shù)博客上的一篇文章《定向抓取漫談》,對通用網(wǎng)絡(luò)爬蟲進行了簡單的定義,如下:
抓取策略:那些網(wǎng)頁是我們需要去下載的,那些是無需下載的,那些網(wǎng)頁是我們優(yōu)先下載的,定義清楚之后,能節(jié)省很多無謂的爬取。
更新策略:監(jiān)控列表頁來發(fā)現(xiàn)新的頁面;定期check頁面是否過期等等。
抽取策略:我們應(yīng)該如何的從網(wǎng)頁中抽取我們想要的內(nèi)容,不僅僅包含最終的目標內(nèi)容,還有下一步要抓取的url。
抓取頻率:我們需要合理的去下載一個網(wǎng)站,卻又不失效率。
讓我對“如何和網(wǎng)絡(luò)爬蟲對話”這個課題有了一些思考,下面歸納的主要用于迎合上面提到的爬蟲“抓取策略”。
1、通過robots.txt和爬蟲對話:搜索引擎發(fā)現(xiàn)一個新站,原則上第一個訪問的就是robots.txt 文件,可以通過allow/disallow語法告訴搜索引擎那些文件目錄可以被抓取和不可以被抓取。
關(guān)于robots.txt 的詳細介紹:about /robots.txt
另外需要注意的是:allow/disallow 語法的順序是有區(qū)別的
2、通過meta tag和爬蟲對話:比如有的時候我們希望網(wǎng)站列表頁不被搜索引擎收錄但是又希望搜索引擎抓取,那么可以通過<meta name=“robots” content=“noindex,follow”> 告訴爬蟲,其他常見的還有noarchive,nosnippet,noodp 等。
關(guān)于 meta tag 的更多介紹:Metadata Elements
3、通過 rel=“nofollow” 和爬蟲對話:關(guān)于 rel=“nofollow” 最近國平寫了一篇文章《如何用好 nofollow》很值得一讀,相信讀完之后你會有很大的啟發(fā)。
4、通過 rel=“canonical” 和爬蟲對話:關(guān)于 rel=“canonical” 谷歌網(wǎng)站站長工具幫助有很詳細的介紹:深入了解 rel=”canonical”
5、通過網(wǎng)站地圖和爬蟲對話:比較常見的是xml格式sitemap和html格式sitemap,xml 格式sitemap可以分割處理或者壓縮壓縮,另外,sitemap的地址可以寫入到 robots.txt 文件。
6、通過網(wǎng)站管理員工具和搜索引擎對話:我們接觸最多的就是谷歌網(wǎng)站管理員工具,可以設(shè)定googlebot抓取的頻率,屏蔽不想被抓取的鏈接,控制sitelinks等,另外,Bing和Yahoo也都有管理員工具,百度有一個百度站長平臺,內(nèi)測一年多了仍舊在內(nèi)測,沒有邀請碼無法注冊。
另外,這里面還衍生出一個概念,就是我一直比較重視的網(wǎng)站收錄比,所謂網(wǎng)站收錄比=網(wǎng)站在搜索引擎的收錄數(shù)/網(wǎng)站真實數(shù)據(jù)量,網(wǎng)站收錄比越高,說明搜索引擎對網(wǎng)站的抓取越順利。
暫時就想到這些,目的在于嘗試性的探討如何更有效的提高網(wǎng)站在搜索引擎的收錄量。
權(quán)當拋磚引玉,歡迎各位補充!
備注:
網(wǎng)絡(luò)爬蟲(web crawler)又稱為網(wǎng)絡(luò)蜘蛛(web spider)是一段計算機程序,它從互聯(lián)網(wǎng)上按照一定的邏輯和算法抓取和下載互聯(lián)網(wǎng)的網(wǎng)頁,是搜索引擎的一個重要組成部分。