搜尋抓取

列表頁翻頁與加载更多:抓取路径在分頁處中断怎么核對

詳情頁常要通過列表頁翻頁才能被蜘蛛發現,分頁一旦用按钮或無限滚動實現,抓取路径就會断在第二頁之後。本文從連結可见性、分頁 URL 组织、日誌核對與修复顺序几個角度,說明如何判断分頁是否被真正走通。

搜尋抓取

列表頁翻頁與加载更多:抓取路径在分頁處中断怎么核對

很多站点的詳情頁不是直接從首頁鏈出去的,而是通過列表頁一层层翻到底才能到達。蜘蛛最终能抓到多少詳情頁,很大程度上取决于它在分頁上愿意走多遠,以及分頁連結在 HTML 里是否真實存在。

分頁為什么容易變成抓取断点

列表頁通常有几十上百條内容,第一屏只露出前 20 條,其余要靠翻頁或点击按钮才能看到。如果第二頁之後的連結不是标准的 a 标簽,而是由 JavaScript 拼接出来,蜘蛛解析 HTML 时就看不到這條路,後面的詳情頁只能靠 Sitemap 或其他内鏈补救。

另一個常见問题是翻頁參數太長。排序、篩選、時間范围與頁碼组合起来可能有几十種寫法,蜘蛛會把它們当成互相獨立的新地址,抓取消耗大量落在列表頁本身,真正需要被抓的詳情頁反而排到了後面。

三種常见翻頁方式與蜘蛛可见性

一、带連結的传统翻頁

  • 下一頁、頁碼連結寫在 HTML 里,蜘蛛可以顺着 href 走;
  • 注意末尾几頁是否被省略成“...”只保留首尾頁碼;
  • 锚文本保持“下一頁”“第 3 頁”這類可讀文字即可,不必堆關鍵詞。

二、按钮式“加载更多”

  • 按钮如果没有 href,蜘蛛無法点击,列表頁等于被截断在第一屏;
  • 可给按钮配一個指向下一頁的真實連結,或保留一份静態分頁入口;
  • 核對时分別查看渲染前後的 HTML,確認連結是否出現。

三、無限滚動

  • 滚動加载的内容對蜘蛛最不友好,通常需要配合分頁地址兜底;
  • 至少要保證每一屏内容都有一组可訪問的静態 URL。

分頁 URL 的组织方式

两種寫法最常见:?page=2 這類查询參數,以及 /list/page/2/ 這類路径。參數形式改動方便,但容易和排序、篩選參數混在一起;路径形式更清晰,在日誌里按前缀統計也更省事。

  • 尽量把分頁地址固定成一種形態,不要两套同时存在;
  • canonical 一般指向目前分頁自身,而不是统一指向第一頁,避免整列被合並;
  • 分頁頁面可以不提交 Sitemap,但不必急着用 noindex 切断路径,除非確認不再需要被抓;
  • 篩選參數建议用 robots.txt 或頁面内連結约束,避免和頁碼自由组合。

用日誌核對分頁是否被抓到底

打開抓取日誌,按列表頁地址前缀筛一遍,重点看几個數字:

  1. 第一頁以外的訪問占多大比例;
  2. 訪問過的頁碼最大到第几頁,是否總卡在同一個位置;
  3. 分頁請求的狀態碼是否干净,有没有 3xx、5xx 混在里面;
  4. 從分頁進入詳情頁的請求,是否在時間上紧随其後。

如果日誌里几乎没有第 3 頁之後的记錄,問题多半出在連結本身,而不是蜘蛛“不想抓”。反過来,如果分頁請求很多但詳情頁請求很少,更可能是參數组合把抓取分散掉了。

修复顺序建议

  1. 先確認分頁連結在 HTML 中是真實存在的 a 标簽;
  2. 再统一分頁地址形態,去掉冗余的排序、會话類參數;
  3. 检查最後一頁的“下一頁”是否鏈回自身或指向错誤地址;
  4. 把重要列表頁放進 Sitemap 或首頁内鏈,缩短到達路径;
  5. 连續观察一到两周日誌,比較修复前後分頁訪問與詳情頁發現的差异。
分頁不是額外的入口,而是詳情頁的必经之路。核對的重点不在頁數多不多,而在每一頁到下一頁的連結是否真的存在、地址是否唯一。