搜尋抓取

分頁連結與抓取路径:蜘蛛能翻到列表頁第几頁

列表頁翻頁是很多站点詳情頁的主要發現入口。本文梳理蜘蛛眼里翻頁連結的几種形態,常见的断点(JS 加载、參數變体、软 404),以及如何用可见連結和第二入口让深层 URL 更容易被抓到,並给出用日誌驗證翻頁深度的方法。

搜尋抓取

分頁連結與抓取路径:蜘蛛能翻到列表頁第几頁

大多數电商、资讯類站点,詳情頁的發現入口都压在列表頁翻頁上。首頁和栏目頁能带到的只是一小部分,真正大量的 URL 是靠第 2 頁、第 3 頁這样一頁頁展開的。所以翻頁連結的形態,直接决定了蜘蛛能不能走到深层。

一、蜘蛛眼里的翻頁連結長什么样

蜘蛛不會点按钮,它只認能解析出来的連結。翻頁有三種常见實現,抓取结果差別很大:

  • 静態連結:list?page=2 寫在 a 标簽的 href 里,蜘蛛顺着走,最稳定。
  • 滚動加载:頁面到底部由 JS 請求下一頁並追加,地址栏不變。蜘蛛通常看不到後續内容,除非另有静態入口。
  • 加载更多按钮:如果是 button 标簽且没有 href,等于给蜘蛛關上门。

如果站点必须用後两種交互,至少给每頁留一组普通 a 連結做兜底,比如在列表底部放下一頁和頁碼。

二、翻頁路径上常见的断点

  • 頁碼只渲染前几頁,後面靠 JS 展開,蜘蛛跟進不去。
  • 下一頁到達末頁後直接消失,却没有明确的终止信号,蜘蛛會反复试探。
  • 翻頁連結把排序、篩選參數一起带出去,例如 page=2 加 sort 再加 color,蜘蛛跟着走出一堆參數變体,把抓取量耗在重复列表上。
  • 頁碼超出范围时返回 200 的空列表頁,形成软 404,既浪費抓取也容易混淆判定。
  • 分頁用井号或 history.pushState 改地址,頁面没有真實可請求的 URL。

三、让翻頁路径更好走

可以從連結和入口两個方向調整:

  • 每一頁都保留下一頁和可点击的頁碼,不依赖 JavaScript 生成。
  • 分頁參數尽量單一,排序、篩選變体不要出現在翻頁連結里,需要的篩選頁單獨给入口。
  • 到最後一頁时给出明确的結束信号,避免蜘蛛無限试探。
  • 對特別深的内容,用分類、标簽、专题等第二入口缩短路径,不要只靠一路翻頁。
  • 如果使用 rel=next 與 rel=prev,要知道主流搜尋引擎已不再把它当作索引信号,寫了無害,但別指望它替代可见連結。

四、怎么確認蜘蛛翻到了後面

光看頁面上的連結不够,得回到日誌驗證:

  1. 在服務器日誌里筛分頁參數,看訪問是否形成连續序列,比如 page=1 到 page=2 再到 page=3。
  2. 看深层 URL 的首次被抓時間,以及抓取它的 referer 来自哪一頁。
  3. 结合 Sitemap,把重要但不常被抓的 URL 單獨列出,作為兜底發現渠道。
  4. 如果日誌里長期只有前两頁被抓,問题多半在翻頁連結本身,而不是内容质量。

分頁看起来是最基础的導航,但它同时承担着 URL 發現和路径收敛两件事。把翻頁連結做成蜘蛛能走的普通連結,往往比反复調整抓取設定更有效。

抓取路径的宽度由入口决定,深度由翻頁决定,两者缺一,深层内容就很难被稳定發現。