很多站点运营者預設蜘蛛只抓 HTML 頁面,其實只要有連結指向,PDF、图片、Office 文档甚至压缩包都可能進入抓取队列。区別在于,抓取之後能不能被解析、能不能被理解,往往取决于你有没有给它足够的上下文。
蜘蛛是怎么發現這些非 HTML 资源的
非 HTML 资源很少自己出現在抓取队列里,它需要被某個入口带出来。常见的發現路径有這么几條:
- 正文里的 a 連結,比如「下载产品說明书」指向一個 PDF;
- img 标簽引用的图片文件,包括正文配图和图集;
- Sitemap 中直接列出的文件 URL;
- 頁面头部的资源引用,如 favicon、分享图。
也就是说,一個 PDF 能不能被抓到,先取决于它有没有被連結,而不是它本身有多重要。只放在服務器目錄里、没有任何頁面向它連結的下载文件,蜘蛛通常找不到。
不同類型资源,被處理的深度差別很大
PDF 與文档類文件
主流搜尋引擎對 PDF 有一定解析能力,能提取正文文字,也允许這類文件出現在搜尋结果里。但文件本身通常没有标题标簽、没有内鏈、也没有结构化标记,蜘蛛能讀到的信息比較單薄。文件元資料(标题、作者)以及連結旁邊的文字,會成為判断内容的重要依據。
图片资源
图片會進入图片搜尋的索引,但蜘蛛理解图片主要靠周邊信息:文件名、alt 文本、图注、所在段落的文字。如果图片文件名是 IMG_2031.jpg,可用的信号就只剩上下文了。
压缩包與可执行文件
zip、rar、exe 這類文件一般會被登记 URL,但很少被解析成可检索的内容。它們更多是消耗一次抓取,而不是带来一個可被搜尋的頁面。批量提供這類下载的站点,要留意它們對抓取节奏的占用。
抓取額度有限时,這些资源怎么算帳
每個文件都要占用一次請求。几個容易被忽略的消耗点:
- 同一張图有原图、缩略图、多尺寸變体,可能产生多份 URL;
- 图片带尺寸或裁剪參數,生成大量近似地址;
- 大体积 PDF 單次抓取耗时長,返回慢;
- 下载列表頁一次性放出上千條連結。
如果站点本来抓取額度就不宽裕,這些资源會明顯挤占 HTML 頁面的抓取机會。
让有意义的资源更容易被理解
- 给稳定 URL:文件更新时尽量替換内容而不是換地址,避免同一份资料产生多個入口。
- 补上下文:連結锚文本寫清文件主题,不要只寫「点击下载」。
- 图片寫 alt:简明描述图片内容,不要堆砌關鍵詞。
- 控制變体:尺寸、裁剪等參數化地址,能用一套規范收敛就收敛。
- 按需列 Sitemap:只把真正希望被检索的文件放進清單,不必把整個上传目錄塞進去。
不希望被抓的资源怎么控制
robots.txt 可以阻止蜘蛛請求某個目錄,但它只是「別来抓」的约定,被阻止的 URL 仍然可能因為外部連結被登记。如果希望文件不出現在结果里,可以配合响應头中的 X-Robots-Tag 或頁面級 noindex 指令。而涉及權限或隐私的文件,最稳妥的方式是不要放在公開可訪問的路径下。
文件能被抓取,不等于會被检索。能不能被理解,取决于你有没有在連結、文件名和上下文里說明它是什么。
把非 HTML 资源当成頁面来對待,给它稳定的地址、清楚的名字和合理的上下文,它才有机會被检索到;如果只是随手堆在服務器上,那它多半只會消耗抓取,不會带来流量。