搜尋抓取

搜尋蜘蛛抓取:抓取深度與点击深度不匹配造成的栏目抓取断层排查

抓取日誌里栏目頁有记錄、詳情頁却長期為零,往往不是蜘蛛“不喜欢”這個栏目,而是抓取深度與点击深度错位。本文给出從首頁做連結抓取、核對分頁與篩選入口、判断 Sitemap 补位作用的排查顺序,並說明如何用横向内鏈把深层頁面拉近入口。

搜尋抓取

搜尋蜘蛛抓取:抓取深度與点击深度不匹配造成的栏目抓取断层排查

两個“深度”為什么容易混在一起

在抓取日誌里,常看到首頁被反复抓取,而某個三級栏目下的内容頁几乎没出現過抓取记錄。這时容易先归因于“蜘蛛不喜欢這個栏目”,但更常见的原因是:点击深度(用戶從首頁点到目标頁需要几次点击)和抓取深度(蜘蛛從入口顺着連結到達该頁面的层數)並不一致。前者由導航决定,後者由連結结构决定,两者错位时就出現断层。

抓取深度不是一道硬性上限,但层級越深,連結传递與調度優先級越容易被稀释。当入口頁本身的抓取频次就低,再往下层传導的抓取机會自然更少。

断层常见的几種表現

  • 栏目頁有抓取记錄,但栏目下的詳情頁長期為零或极少。
  • 列表頁只被發現第一頁,第二頁之後的連結没有被跟随。
  • 同一批内容在 Sitemap 中有 URL,但實际抓取路径只剩站点地图這一條。
  • 導航或面包屑里的連結指向的是篩選後的 URL,與真實詳情頁 URL 並不相同。

排查顺序

第一步:以首頁為起点做一次連結抓取

用爬虫工具從首頁出發,记錄每個 URL 的层級與入鏈數量。注意区分两件事:連結是否存在、連結是否可被跟随(是否被 nofollow、是否由脚本插入、是否要交互後才渲染)。如果某個栏目在第三层才出現,其下内容就處在第四层左右,抓取传導會明顯變慢。

第二步:核對導航與列表頁的分頁連結

分頁連結是否由可点击的 a 标簽承载,决定了詳情頁能否被逐頁發現。只在頁面上渲染“下一頁”按钮、由前端事件切換内容的實現,會让第二頁之後的入口断层。同理,篩選條件生成的组合 URL 如果數量巨大,會把有限的抓取量摊薄,真正需要抓取的詳情頁反而被排到後面。

第三步:检查 URL 层級與實际目錄是否一致

有些站点物理目錄很浅,URL 路径却很長,而頁面之間只靠站内搜尋或參數跳轉相连。這種情况给人的印象是“很深”,但真正的問题是缺少横向連結:同栏目内相關内容互鏈、标簽聚合頁、专题頁,都能把深层頁面拉到更浅的入口位置。

第四步:判断站点地图的补位作用

Sitemap 是补充入口,不是替代内鏈的手段。它可以缩短發現時間,但如果頁面本身没有任何内鏈指向,即使被抓到,也很难获得持續回訪。把 Sitemap 当作最後一道保險,而不是主要路径。

可以落地的調整方向

  1. 在栏目頁首屏给出足够數量的詳情入口,避免全部依赖分頁。
  2. 為深层頁面增加同栏目推荐、上一篇/下一篇、标簽聚合等横向連結。
  3. 把重要栏目固定在主導航或面包屑中,减少点击层級。
  4. 收敛參數组合,對篩選頁做合理的入口控制,避免重复 URL 摊薄抓取量。
  5. 定期用日誌比對:被抓取最多的 URL 與被内鏈指向最多的 URL 是否一致。
判断标准不是“頁面排在第几层”,而是“從任意常用入口出發,能否在較少跳轉内稳定到達”。深度只是表象,連結數量與入口质量才是可以動手調整的部分。

驗證與观察

調整後不要急着下结论,先看日誌中该栏目的抓取條數與狀態碼分布是否變化,再看詳情頁 URL 是否開始出現。如果仍然没有,回到第一步重新確認連結是否真的可被跟随,而不是只在浏览器里点得通。服務器响應是否稳定、是否對蜘蛛請求返回了不同内容,也會影响结果,這部分可以用同一 UA 手動請求做對照。