搜尋抓取

蜘蛛抓取非 HTML 资源:图片、PDF 與视频的索引邊界

蜘蛛不只抓 HTML 頁面,也會遇到图片、PDF、视频、JSON 等资源。本文梳理這些资源在 URL 發現、抓取预算與索引中的實际處理方式,以及站点该做哪些取舍,避免把带宽和抓取机會浪費在低價值资源上。

搜尋抓取

蜘蛛抓取非 HTML 资源:图片、PDF 與视频的索引邊界

蜘蛛進入一個站点後,遇到的不只是 HTML。图片、PDF、视频、JSON、CSS、JS,都會以某種形式出現在它的抓取队列里。有的會被当资源取走,有的只被记下 URL,還有的會直接消耗抓取预算。理解這几類资源的差別,能帮你把抓取机會用在更值得的頁面上。

非 HTML 资源分两類

大致可以分成「作為頁面组成部分被引用」和「作為獨立 URL 被索引」两種角色。

  • 被引用的资源:如頁面里的图片、CSS、JS、字体。蜘蛛抓它們主要是為了渲染或理解頁面,通常不會單獨出現在搜尋结果里。
  • 獨立可索引的资源:如 PDF、部分文档、视频落地頁、结构化資料文件(JSON、XML)。這類资源有獨立 URL,可能被單獨收錄。

同一類资源在不同场景下的归属也會變。比如一張图片在普通頁面里是「资源」,但放在专门的图片路径下,又有可能被图片搜尋單獨處理。

图片:抓引用,也看上下文

普通網頁里的图片,蜘蛛一般會取回文件本身,但真正决定會不會被索引的,是它周围的上下文:alt 文本、文件名、所在頁面的主题、图片是否在首屏、是否被懒加载挡住。

常见誤区是把大量图片堆在同一個頁面上,指望它們被逐一發現。更稳的做法是:

  • 让每張有價值的图片出現在主题相關的頁面里,而不是孤立的图库頁。
  • 文件名和 alt 描述具体内容,不用「img_001」這類無意义命名。
  • 图片体积控制在合理范围,避免單頁加载几十張大图拖慢整站响應。

PDF 與文档:容易被忽略的可索引资源

PDF、DOC、PPT 這類文件如果直接放在可訪問目錄下,會形成獨立 URL。蜘蛛發現有两條路径:一是頁面里鏈過去,二是被 Sitemap 或外部連結指向。

風險在于,很多站点把内部文档、报價單、舊版手册直接放在開放目錄里。這些文件一旦被收錄,會以和網頁不同的形式出現在搜尋结果中,内容過期或信息不准确时處理起来比較麻烦。

判断标准很简單:這份文档如果被陌生人搜到,你是否愿意它出現在结果頁里。不愿意,就不要用公開的静態目錄存放。

需要被索引的文档,建议给一個稳定的 URL,並在 Sitemap 中列出;不需要的,用 robots.txt 或訪問控制挡在抓取之前。

视频:頁面才是入口

蜘蛛對视频的處理,主要看承载它的頁面。视频文件本身通常不會成為搜尋入口,能被理解的往往是頁面上的标题、描述、字幕、封面和结构化資料。

所以视频的抓取路径设計,重点不在视频文件,而在:

  1. 是否有獨立的视频詳情頁,且 URL 稳定。
  2. 頁面是否有可讀的文字說明,而不是只有一個播放器。
  3. 视频文件是否使用分段請求,服務器能否稳定支持 range 响應。

如果视频頁依赖 JS 動態插入播放器和文案,蜘蛛第一次拿到的可能只是一個空壳。重要的描述信息最好服務端就能輸出。

這些资源怎样影响抓取预算

被引用的资源同样占用請求。一個頁面引用 80 張图片和 20 個脚本,蜘蛛為理解這個頁面付出的請求數就會明顯上升。当這類請求變多,留给真正内容頁的抓取額度就會被挤占。

可以按下面的顺序做一次盘点:

  • 列出單頁引用的资源數量,看是否存在明顯偏高的模板或组件。
  • 检查是否有大量未被任何頁面引用的孤立资源文件,它們可能仍能被直接訪問和抓取。
  • 確認 robots.txt 是否把無意义的资源目錄挡在抓取之外,比如缩略图缓存、临时導出目錄。
  • 观察服務器日誌中蜘蛛對资源類 URL 的請求比例,如果偏高,再回头看模板和目錄结构。

索引邊界要主動划

哪些资源希望被單獨收錄,哪些只作為頁面的一部分存在,這個邊界最好由站点自己划定,而不是等蜘蛛去猜。

具体做法不复杂:可索引的文档给出稳定 URL 並寫進 Sitemap;不可索引的内部文件用 robots.txt 或權限控制拦住;图片和视频則把描述信息放在 HTML 里,而不是只放在 JS 之後。這样蜘蛛拿到的路径更清晰,抓取也不會浪費在你不打算公開的内容上。