大模型怎么获取网页内容?爬虫、抓取与解析的完整链路
摘要:大模型并不"浏览"网页,而是走一条机械链路——爬虫发现并抓取页面 HTML、解析出正文与结构、清洗掉导航广告等噪音、切成语义块、向量化存入数据库,最后在回答时检索最相关的块并附上引用。本文把这六步串成一张可读的图,并给出让内容"先被抓到、再被引用"的 GEO 启示。
很多人以为 ChatGPT、Claude、Perplexity 像人一样"看"网页:滚屏、点标签、读图。事实相反——它们更像一个 2010 年的简陋下载器:发一次 HTTP 请求,读回字节,解析里面的 HTML,然后走人。理解这条链路,是理解"为什么有的内容进了 AI 答案、有的永远消失"的前提。下面从发现到引用,逐步拆开。
关键要点
- AI 爬虫是 HTTP 客户端,不是浏览器:发请求、读 HTML 字节、解析、追链接,多数不执行 JavaScript。
- 纯 JS 渲染是头号雷区:Vercel 实测 ChatGPT 对纯 JS 页 404 率高达 34.82%;关键内容必须落在服务端 HTML(SSR/SSG)。
- 解析=提取正文+结构:取 text、标题层级、JSON-LD、meta、内链;boilerplate(导航/广告/页脚)占典型页 HTML 的 3–5 倍,需清洗。
- 清洗降噪有实证:trafilatura 配 Markdownify 最多降 67% token 消耗;Readability 正文提取中位 0.970;保留层级结构比纯文本切分检索精度 +30% 以上。
- 分块决定检索质量:fixed-size / sentence / heading-based / semantic 四策略;生产默认用递归切分 + 父子块(小块精检、父块补上下文)。
- 向量化+检索才产出引用:正文→embeddings→向量库;检索类爬虫(OAI-SearchBot/Claude-SearchBot/PerplexityBot)实时取最新页并附引用。
- 三类爬虫管法不同:训练(GPTBot/ClaudeBot)被 block 不影响 AI 搜索可见度(搜索走另一条),误 block 检索类才会让你从答案里消失。
一、发现与抓取:从种子 URL 出发
AI 爬虫的起点和传统搜索引擎一样:一组种子 URL——你的 sitemap.xml、从其他页发现的链接、或 AI 功能直接请求。它带着可识别的 user-agent(如 GPTBot、ClaudeBot、PerplexityBot)发 HTTP GET,拿到响应体,然后解析其中 HTML。
在真正抓取前,合规爬虫会先读 robots.txt,判断自己有没有权限访问该路径。这里有个关键区分:AI 爬虫分三类,管法不同(详见第七节):
- 训练爬虫:GPTBot(OpenAI)、ClaudeBot(Anthropic)、Google-Extended(Gemini 训练令牌)、CCBot(Common Crawl)——抓取内容进未来训练集,当下不产生引用与流量。
- 检索/搜索爬虫:OAI-SearchBot、Claude-SearchBot、PerplexityBot——建索引,AI 回答实时问题时从中取并附引用。
- 用户触发代理:ChatGPT-User、Claude-User、Perplexity-User——真人让 AI 打开某页时即时抓取。
二、解析 HTML:多数爬虫不执行 JavaScript
拿到 HTML 后,爬虫解析文本、标题层级(H1–H6)、metadata(title/description/OG)、JSON-LD 结构化数据、图片 alt 与内链。但它几乎不执行 JavaScript——GPTBot、ClaudeBot、PerplexityBot 都是普通 HTTP 客户端,读初始响应就走,没有 DOM、没有事件循环。
这是内容"消失"的头号原因。Vercel 实测:ChatGPT 对纯 JS 渲染页的 404 率高达 34.82%——页面在人眼里正常,爬虫只拿到空壳。产品参数、价格、库存若靠客户端 API hydrate 进来,对 LLM 爬虫等于不存在。Googlebot 是少数例外(有二次 headless-Chromium 渲染),但那是独立滞后 pass,可能晚几秒到几周,绝不能当主交付路径。
结论:关键内容必须出现在服务端 HTML 响应里——用 SSR、SSG 或预渲染;SPA 至少给服务端渲染兜底。
三、清洗与转 Markdown:把正文从噪音里捞出来
典型网页的架构对文本提取极不友好:一篇新闻里导航、相关推荐、评论、cookie 弹窗、结构化数据脚本,往往占 HTML 的 3–5 倍于正文。不清洗直接喂模型,等于用导航文字污染嵌入向量,检索时张冠李戴。
生产级解析通常用专门库,而非手写选择器:
- trafilatura:文章抽取默认选择,结合 HTML 结构与文本密度评分隔离正文块,自动去 boilerplate,返回干净文本/XML(含作者、日期)。配合 Markdownify 把 HTML 标签映射为 Markdown 标题,token 消耗最多降 67%。
- Readability.js:靠文本/链接密度挑出正文,benchmark 中位性能 0.970,稳定剥离非必要元素。
- newspaper4k / Jina Reader:前者在抽取上叠加关键词与摘要;后者是 API 式"传 URL 返干净 Markdown",适合低量原型。
- 纯 BeautifulSoup 的
get_text()是反面教材——丢掉层级、无 boilerplate 检测。
关键实证:2024 年对比研究显示,保留文档层级结构(标题、段落关系)的方法比纯文本切分检索精度高 30% 以上。所以"转成 Markdown 而非纯文本"不是洁癖,是准确性。
四、分块:按语义切,别按字数砍
清干净的正文还要切成"块(chunk)"才能进向量库。切法直接决定检索质量:
| 策略 | 典型大小 | 优点 | 缺陷 |
|---|---|---|---|
| 固定字数 | 500–1000 字符 / 512 token | 快、批处理均一 | 句中切断,破坏语义连贯 |
| 句边界 | 3–8 句 | 不切断句子 | token 数浮动,批处理难 |
| 标题分级 | 整个 H2/H3 段 | 语义最连贯、出处清晰 | 段落长短不一(50–2000+ token) |
| 语义(嵌入) | 256–512 token | 高精度检索 | 需逐句算嵌入,慢 10–50x |
生产默认是递归字符切分(先按段、再按句、再按词,LangChain RecursiveCharacterTextSplitter 最常用),并对超长段用 token 上限递归兜底。更高阶用父子分块:小块(128–256 token)用于精检,命中后回退父块(1024–2048 token)给模型补上下文——兼得精度与完整。
五、向量化与存储:让"意思相近"可被检索
每块文本经 embedding 模型转成向量,存入向量数据库(Milvus、Elasticsearch、Pinecone 等)。embeddings 让系统比对"意思"而非关键词——用户问法和原文不同措辞,仍能召回相关块。这是 RAG(检索增强生成)的第一步:把全网或你的站点内容,变成随时可按语义取用的知识底座。
六、检索与引用:回答时取最相关的块
当用户提问,AI 把问题也向量化,在库里找最相近的块,拼进上下文生成答案,并(在检索类系统里)附上来源链接。PerplexityBot、OAI-SearchBot、Claude-SearchBot 就是干这个的——它们实时抓最新页、建索引、在答案里引用你。这也是"被 AI 引用"发生的真正位置:内容进了检索索引,且块语义匹配问题,才可能被引。
七、三类爬虫与 robots.txt 决策
很多站点误以为"block 所有 AI 爬虫"就安全,结果是从 AI 答案里整体消失。正确做法是按类区分:
| 类型 | 代表爬虫 | 作用 | 建议 |
|---|---|---|---|
| 训练 | GPTBot、ClaudeBot、Google-Extended、CCBot | 进未来训练集,无当下引用/流量 | 可 block(保护语料) |
| 检索 | OAI-SearchBot、Claude-SearchBot、PerplexityBot | AI 搜索实时索引+引用 | 必须 allow |
| 用户触发 | ChatGPT-User、Claude-User、Perplexity-User | 真人让 AI 打开你的页 | allow |
关键事实(CrawlForge 等实测一致):block GPTBot/ClaudeBot 不影响你在 AI 搜索里的可见度——因为 ChatGPT 搜索走 OAI-SearchBot、Claude 搜索走 Claude-SearchBot,两者设置独立。误 block 的恰恰是检索类,才会让你"从答案里消失"。注意 Google-Extended 只是 robots.txt 令牌、不是真正爬虫,block 它不影响 Google Search 排名,只退出 Gemini 训练。
八、对你的启示:先被抓到,才可能被引用
把上面串起来,GEO(生成式引擎优化)的第一性原理很朴素——AI 要引用你,先得抓到你、读得懂你。落到动作:
- 关键内容进服务端 HTML:用 SSR/SSG,别让参数、价格、结论只活在 JS 里(否则 34.82% 的 404 风险)。
- 语义 HTML + JSON-LD:用
<article>、清晰 H1–H6、列表、表格;加 Article/FAQPage/BreadcrumbList 结构化数据,去掉 AI 的"这是价格还是电话"的猜测。 - sitemap 带 lastmod、内链成网:让爬虫发现全部重要页,别留孤儿页。
- 加 llms.txt:用 llms.txt 规范给 AI 一份站点导览,前瞻站点已在用。
- 快加载:慢页可能被超时跳过。
- 别误 block 检索爬虫:robots.txt 里允许 OAI-SearchBot/Claude-SearchBot/PerplexityBot,只 block 训练类。
九、常见误区
- "AI 像人一样看网页":错。它是 HTTP 客户端,读 HTML 字节、不执行 JS、不滚屏不点标签。
- "我的 SPA 没问题,人看得到":爬虫看到的是空壳;关键内容必须服务端渲染。
- "block 所有 AI 爬虫最安全":误 block 检索类会让你从 AI 答案消失;训练类 block 才不影响搜索可见度。
- "正文越长越好":不清洗的长 HTML 是噪音,boilerplate 污染嵌入;干净结构+合理分块远胜堆字。
- "纯文本喂模型省事":丢掉层级,检索精度低 30%+;转 Markdown 保结构。
- "Google-Extended block 了会掉排名":不会,它只控制 Gemini 训练用途,与 Search 排名无关。
常见问题
问:大模型爬虫和普通搜索引擎爬虫有什么不一样?
答:目标不同。Googlebot/Bingbot 建可检索索引、把人导回你的页;训练类 AI 爬虫(GPTBot/ClaudeBot)是把页面"吸收"进模型知识,当下不导流量;检索类 AI 爬虫(OAI-SearchBot/PerplexityBot)则建索引、在实时回答里引用你并附链接。行为上多数 AI 爬虫也不执行 JavaScript。
问:我的网站是 React/Vue 单页应用,AI 能读到吗?
答:大概率读不到关键内容。多数 LLM 爬虫不跑 JS,只取初始 HTML 壳。Vercel 实测 ChatGPT 对纯 JS 页 404 率 34.82%。必须做 SSR/SSG 或预渲染,让产品参数、价格、结论出现在服务端 HTML 里。
问:为什么不能直接把 HTML 当纯文本喂给模型?
答:典型页导航/广告/页脚占 HTML 的 3–5 倍于正文,纯文本会把噪音一起嵌进向量,检索时张冠李戴。先清洗(trafilatura/Readability)再转 Markdown 保层级,实证检索精度高 30% 以上、token 消耗降最多 67%。
问:block GPTBot 会让我的内容从 ChatGPT 搜索里消失吗?
答:不会。ChatGPT 搜索走 OAI-SearchBot,与 GPTBot 设置独立;block 训练类只退出未来训练集,不影响实时搜索引用。真正要让 AI 答案消失的是误 block 检索类(OAI-SearchBot/Claude-SearchBot/PerplexityBot)。
问:分块大小怎么定?
答:多数生产系统落在 256–1024 token/块。默认用递归字符切分(先段后句后词),超长段按 token 上限兜底;更高阶用父子分块——小块精检、父块补上下文,兼得精度与完整。
问:llms.txt 和 robots.txt 是一回事吗?
答:不是。robots.txt 控制"能不能爬、爬哪";llms.txt(llmstxt.org 规范)是给 AI 的站点导览,告诉它哪些页重要、怎么理解你的站,属锦上添花而非强制。两者都建议配置。
关于通智云
通智 GEO 帮企业在"内容被 AI 抓取→读懂→引用"的链路里占住位置:在保留 SEO 基本功(SSR/SSG 友好、语义 HTML、结构化数据、sitemap)的同时,叠加 JSON-LD、答案块重构与分引擎 AI 引用率监测,让品牌既稳居传统搜索、又进入 AI 答案。通智云(TENGENCE)是 AI 时代的企业增长引擎,专注公域引流获客与私域转化成交;核心产品为通智 GEO(GEO + SEO 双引擎)与通智搜索。
相关阅读
- 什么是 GEO(生成式引擎优化)?定义、原理与 SEO 的区别
- ChatGPT、Perplexity、Gemini 分别引用谁?三大 AI 平台的信源偏好盘点
- 结构化数据怎么帮 GEO?Schema 标记完整指南
数据来源
- anglera:How LLM crawlers fetch pages:GPTBot/ClaudeBot/PerplexityBot 是常规 HTTP 客户端、不执行 JS;仅读初始 HTML 字节;JS-only SPA 产品数据对 LLM 爬虫不可见。
- trackmyvisibility:How AI Crawlers Work and What They Look For:抓取解析四步(fetch→parse→chunk→embeddings/向量库);Vercel 测 ChatGPT 对纯 JS 页 404 率 34.82%;SSG/SSR 必需。
- aisearchdynamics:How AI Models Crawl Websites:训练爬虫 vs 检索爬虫二分;解析取 text/heading/JSON-LD/meta/内链;不执行 JS;逐条 Action Steps。
- tubrief:Why Scraping Markdown Instead of HTML Makes RAG Answers More Accurate:保留层级结构比纯文本切分检索精度 +30% 以上(2024 研究);trafilatura 配 Markdownify 降 token 67%;Readability 中位 0.970。
- CrawlForge:AI Crawler List 2026:block GPTBot/ClaudeBot 不影响 AI 搜索可见度(搜索走 OAI-SearchBot/Claude-SearchBot),二者设置独立。
- bestseo.sg:GPTBot, ClaudeBot and PerplexityBot 2026 配置指南:三类 AI 爬虫完整参考表与默认动作(训练 block / 检索 allow / 用户触发 allow)。
- dev.to:Web Scraping Pipeline for RAG:trafilatura 正文抽取最准(优于 readability-lxml/newspaper3k);五阶段流水线(fetch→extract→normalize→chunk→embed)。