大模型怎麼獲取網頁內容?爬蟲、抓取與解析的完整鏈路
摘要:大模型並不「瀏覽」網頁,而是走一條機械鏈路——爬蟲發現並抓取頁面 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)。