大多數电商、资讯類站点,詳情頁的發現入口都压在列表頁翻頁上。首頁和栏目頁能带到的只是一小部分,真正大量的 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,要知道主流搜尋引擎已不再把它当作索引信号,寫了無害,但別指望它替代可见連結。
四、怎么確認蜘蛛翻到了後面
光看頁面上的連結不够,得回到日誌驗證:
- 在服務器日誌里筛分頁參數,看訪問是否形成连續序列,比如 page=1 到 page=2 再到 page=3。
- 看深层 URL 的首次被抓時間,以及抓取它的 referer 来自哪一頁。
- 结合 Sitemap,把重要但不常被抓的 URL 單獨列出,作為兜底發現渠道。
- 如果日誌里長期只有前两頁被抓,問题多半在翻頁連結本身,而不是内容质量。
分頁看起来是最基础的導航,但它同时承担着 URL 發現和路径收敛两件事。把翻頁連結做成蜘蛛能走的普通連結,往往比反复調整抓取設定更有效。
抓取路径的宽度由入口决定,深度由翻頁决定,两者缺一,深层内容就很难被稳定發現。