搜尋蜘蛛在進入一個站点时,通常會先讀取根目錄下的robots.txt文件。這個文件相当于站点的訪問协议,告诉蜘蛛哪些路径可以抓取,哪些路径需要绕行。不少站点运营者對robots的记忆停留在“Disallow屏蔽後台”這一步,認為只要寫了規則就不會出错。但正是這種粗线條的理解,導致了URL發現环节中大量可抓取頁面被悄然拦截。
我們曾用蜘蛛池對一個内容站做過一次模拟抓取,目的是检查栏目頁和内容頁的URL是否都能被搜尋引擎的爬虫顺利發現。模拟结果顯示,有接近两成的栏目頁在長達一個月内從未出現在抓取日誌中。逐一排查後,問题最终指向了robots.txt的指令细节——不是規則没寫,而是規則與規則之間發生了相互冲突。
allow與disallow的顺序,比想象中更敏感
robots协议中,對于同一路径的匹配,搜尋引擎爬虫會優先采纳長度最長的匹配規則;如果匹配長度一致,則按規則出現的先後顺序决定。這意味着,不能简單地認為Allow與Disallow像白名單和黑名單一样泾渭分