站点运营

站点运营:分頁與翻頁自查,別让列表後半段變成抓取死角

列表頁一頁放不下就要分頁,但很多站点的翻頁是“能点却难抓”:地址不進浏览器栏、翻頁靠按钮事件、每頁标题一模一样。本文按地址形態、連結形式、頁面信号、抓取节奏四條线,给出分頁翻頁的自查顺序和處理办法,帮列表深處的頁面不再被忽略。

站点运营

站点运营:分頁與翻頁自查,別让列表後半段變成抓取死角

為什么要专门检查分頁

栏目頁、列表頁、归档頁内容量往往很大,一頁放不下就得翻頁。分頁本身没有問题,問题出在很多站点的分頁结构属于“能点但难抓”:翻頁按钮由脚本控制,第 2 頁以後没有獨立入口,或者每一頁的标题完全一样。结果就是列表後半段的内容長期躺在抓取死角里,更新了也等于没更新。

下面按“地址形態 → 連結形式 → 頁面信号 → 抓取节奏”的顺序梳理一遍,最後给一個可以直接照做的自查流程。

一、先看分頁的地址形態

常见三種寫法,各有各的坑:

  • 路径式:如 /news/page/2/,结构清楚,容易被识別為同一组頁面。
  • 參數式:如 /news?page=2,可以用,但要注意和篩選、排序參數叠加时會生出大量组合。
  • 锚点或纯脚本加载:地址里的 # 部分通常不參與识別,点击“下一頁”地址栏不變,等于所有頁面對外看起来都是第一頁。

自查方法很简單:把栏目翻到第 2 頁、第 5 頁,複製地址,新開一個窗口粘贴打開,看是否還是那一頁。如果粘出去又回到第一頁,說明分頁只存在于前端狀態里,外部無法單獨引用。

分頁地址的第一條底线:每一頁都能被單獨打開、單獨分享、單獨记錄。

二、翻頁連結要能被正常跟随

不少模板用容器元素绑定点击事件来做“下一頁”,對訪客没問题,對爬虫来说就是断路。逐條检查:

  1. 上一頁、下一頁是否為带 href 的普通連結,而不是脚本按钮?
  2. 頁碼 1、2、3 是否可点,還是只顯示目前頁加一個“下一頁”?
  3. 從第一頁一路点下去,能否真正到達最後一頁?有些组件设了頁數上限,翻到某個位置就没有入口了。
  4. 如果用的是“加载更多”,地址有没有同步變化?没有的话,考虑為前若干頁保留一组静態分頁入口。

三、頁面信号別弄错

  • 标题與描述:第 2 頁以後的标题建议带上頁碼或内容区間,避免整组頁面在结果里長得一模一样。
  • canonical:分頁頁一般指向自身。把所有分頁都指向第一頁,等于告诉搜尋引擎後面几頁不必保留。
  • 正文重复度:列表里每條通常是标题加摘要,摘要寫得太長,相邻分頁之間會大面积重合。控制在两三行以内即可。
  • robots 規則:除非确實不希望被收錄,否則不建议用 robots.txt 直接屏蔽分頁目錄,那會连里面的文章入口一起切断。

四、抓取节奏與配額分配

分頁數量多、更新频繁、單頁信息量又小的栏目,最容易占用大量抓取時間却带不来多少價值。可以從几個方向收敛:

  • 列表頁只放摘要,不要把整篇正文都铺在列表上。
  • 篩選、排序、時間范围這類參數组合,只保留少數有稳定訪問價值的形態,其余向這几個入口集中。
  • 内容确實庞大的栏目,用分類、标簽或時間归档做二級切分,而不是让人一路翻到第几十頁。
  • 定期看服務器日誌里分頁 URL 的訪問情况,長期零訪問的分頁形態,多半是入口出了問题,而不是内容不值得看。

五、一個可以直接照做的自查流程

  1. 挑出三個内容量最大的栏目。
  2. 手動翻到第 2 頁、正中間某頁和最後一頁,记錄地址、連結形式、能否直接打開。
  3. 检查這几頁的标题和 canonical 是否合理,有没有整组重复。
  4. 過一段時間在日誌里看這些 URL 有没有被訪問,訪問频率是否和更新频率相称。
  5. 如果發現後面几頁几乎無人問津,優先排查入口連結和脚本依赖,而不是先去改内容。

分頁不是可有可無的邊角功能,它直接决定了列表深處的頁面有没有被發現的机會。把入口、地址和頁面信号這三件事理清楚,比事後反复折腾“為什么新内容一直没動静”要省事得多。