搜尋抓取

分頁與“加载更多”:蜘蛛翻列表頁时,URL 會在哪里断掉

列表頁的分頁方式,决定了蜘蛛能沿着連結走多深。本文對比真實連結分頁、按钮加载更多、無限滚動三類形態在 URL 發現上的差异,說明深层列表頁容易断在哪些环节,並给出真實連結、每頁數量、分類入口與 Sitemap 补位等可落地的處理思路。

搜尋抓取

分頁與“加载更多”:蜘蛛翻列表頁时,URL 會在哪里断掉

列表頁是站点里 URL 最集中的地方,也常常是蜘蛛發現内容頁的主要入口。分頁做得好不好,往往决定蜘蛛能顺着連結走多深。很多站点内容頁本身质量不差,但只被發現了前两三頁,後面的全部落空,問题通常出在分頁的呈現方式上。

三種分頁形態,對發現的影响不同

從蜘蛛能否沿着連結繼續往下走的角度看,分頁大致分三類。

  • 真實連結分頁:每頁都是可訪問的 URL,頁碼用 a 标簽指向下一頁和若干頁碼。蜘蛛可以逐頁跟進,路径清晰。
  • 按钮加载更多:頁面上有一個按钮,点击後用脚本拼接參數或路径,把新一頁資料插到列表後面。按钮本身不是連結,蜘蛛拿不到下一頁地址。
  • 無限滚動:滚動到底自動加载。對用戶最顺滑,對蜘蛛最不友好,因為地址栏里的 URL 往往從头到尾不變。

後两種形態並不是完全不能被抓,但它們把“下一頁在哪”這件事交给了脚本。即使渲染能力在提升,頁面上只出現一次、且随用戶行為才触發的請求,被顺利抓取到的机會仍然明顯偏小。

路径通常断在哪里

断在第一頁之後

最常见的情况。首頁或分類頁的 HTML 里只有第一頁的連結,“下一頁”由脚本拼出来。蜘蛛抓完第一頁,發現不到新地址,路径就到這里結束了。

断在中間某頁

有些站点前几頁是静態連結,後面改成“加载更多”。這種混合形態最容易被忽略:日誌里能看到前面几十頁被抓過,但再往後的地址一次都没出現。

断在參數變化

分頁參數的寫法如果不统一,比如第一頁是列表根地址,第二頁變成带頁碼參數的地址,第三頁又換成路径形式的分頁,或者每次都附带排序、篩選、會话參數,蜘蛛就需要額外判断這些地址是不是同一批内容。路径容易在這里分叉,甚至停住。

让深层列表頁重新進入發現路径

  • 分頁尽量用 a 标簽:给“下一頁”和頁碼提供真實可訪問的地址,浏览器里能打開的 URL,連結里也應该有。脚本可以叠加交互,但別让它成為唯一的入口。
  • “加载更多”补一個静態兜底:按钮点击後可以加载,同时在頁面底部保留指向後續頁碼的連結,或為整個列表提供一個可浏览的分頁视图。
  • 控制每頁數量:每頁放多少條,决定了同样的抓取次數能覆盖多少 URL。每頁條數過少會拉長翻頁鏈,過多則让單頁變重、後續連結被推到更靠後的位置。按内容類型找一個相對稳定的值即可。
  • 用分類和标簽頁分流:如果列表按時間排序,深頁内容會不断下沉。建立按栏目、按主题的分類入口,能让老内容保持在較浅的层級。
  • 別只靠列表頁:Sitemap 是列表之外的另一條發現路径。列表頁翻不到的位置,可以在 Sitemap 里补上,但要注意它只是提供地址,並不替代内鏈结构。
  • 篩選结果要谨慎:篩選參數能组合出大量地址,如果没有收敛規則,抓取量會耗在重复内容上,真正的深层列表頁反而被稀释。

怎么確認路径有没有断

把服務器日誌按抓取次數排一下,看列表頁的分頁 URL 是成片出現,還是只集中在前几頁。再用内鏈工具抓一次站点,检查“下一頁”連結是不是真的寫進了 HTML。两邊的结论對得上,基本就能判断問题出在連結层還是抓取层。

分頁设計的目标不是让蜘蛛“多抓”,而是让每一层内容都有一條能一路走得下去的連結路径。路径完整,抓取才有机會按你規划的结构展開。

列表頁翻頁看起来是前端交互细节,實际上决定了大量内容頁的發現概率。把分頁連結做成真實可訪問的地址,再配合分類入口和 Sitemap 兜底,通常比反复調整抓取相關參數更直接。