介绍:网络爬虫
网络爬虫(也称为蜘蛛或机器人)是自动化的程序,负责在互联网上发现和抓取网页内容。爬虫是搜索引擎和AI系统的基础组件,它们通过跟踪网页中的超链接,持续发现新页面并抓取内容,为搜索引擎索引和AI模型训练提供数据源。
根据用途不同,网络爬虫主要分为两类:搜索引擎爬虫(如Googlebot、Bingbot)用于构建搜索索引,帮助用户在搜索引擎中找到网页;AI爬虫(如GPTBot、ClaudeBot)用于训练大语言模型(LLM),帮助AI工具生成更准确、更人性化的回答。这两类爬虫在工作方式、技术能力和访问目的上存在显著差异,网站所有者需要了解这些差异来制定合适的爬虫管理策略。
如果您想了解更多关于搜索引擎工作原理的信息,可以查看我们的搜索引擎如何工作完整指南。
搜索引擎爬虫
搜索引擎爬虫是传统搜索引擎(如Google、Bing)使用的爬虫程序,主要目的是发现和抓取网页内容,构建搜索索引,帮助用户在搜索时找到相关网页。搜索引擎爬虫经过多年优化,在JavaScript渲染、抓取效率、内容优先级等方面都达到了很高的水平。
搜索引擎爬虫工作原理
搜索引擎爬虫的工作流程包括:发现URL(从已知页面、sitemap、URL提交等渠道发现新网页)、抓取内容(访问网页并下载HTML、CSS、JavaScript等资源)、渲染页面(执行JavaScript代码,渲染完整页面内容)、提取信息(提取文本、链接、图片、元数据等信息)、建立索引(将提取的信息存入搜索索引库)。
爬虫从种子URL(Seed URLs)开始,访问初始网页列表,分析页面内容并提取所有超链接,将新发现的链接加入待访问队列。爬虫遵循网站所有者设定的规则,主要通过robots.txt文件了解哪些页面可以抓取、哪些应该忽略。爬虫采用宽度优先(BFS)或深度优先(DFS)等策略来平衡抓取效率和覆盖范围。现代爬虫系统需要考虑爬取频率控制(避免对服务器造成过大压力)、URL去重(避免重复抓取)、动态内容渲染(JavaScript渲染)、爬取优先级(重要页面优先抓取)等技术问题。
主流搜索引擎爬虫
主要的搜索引擎爬虫包括:Googlebot(Google的爬虫,用于Google搜索和Gemini AI)、Bingbot(微软Bing的爬虫)、YandexBot(Yandex的爬虫)、Baiduspider(百度的爬虫)等。这些爬虫经过多年优化,能够高效地发现和抓取网页内容,支持JavaScript渲染,能够处理现代Web应用。
Googlebot是使用最广泛的搜索引擎爬虫,每月在Vercel网络上产生约45亿次请求。Googlebot使用Chrome浏览器渲染引擎来处理JavaScript,能够完整渲染现代Web应用。Bingbot也具备类似的JavaScript渲染能力,能够处理动态内容。这些爬虫通常从多个地理位置(如美国多个数据中心)进行抓取,确保全球覆盖和负载均衡。
JavaScript渲染能力
现代搜索引擎爬虫(如Googlebot、Bingbot)具备完整的JavaScript渲染能力,能够执行JavaScript代码,渲染完整页面内容。这意味着使用React、Vue、Angular等框架构建的单页应用(SPA)也能被搜索引擎正确抓取和索引。Googlebot使用Chrome浏览器渲染引擎,能够处理CSS、Ajax请求、WebSocket连接等现代Web技术。
然而,JavaScript渲染需要额外的计算资源,如果JavaScript内容过多或加载缓慢,可能会影响抓取效率。建议网站所有者使用服务端渲染(SSR)或静态生成(SSG)来确保关键内容能够被快速抓取,同时使用JavaScript来增强用户体验。对于关键内容(如文章正文、产品信息、元数据),应该确保在初始HTML响应中包含,而不是完全依赖JavaScript渲染。
AI爬虫
AI爬虫是AI公司(如OpenAI、Anthropic)使用的爬虫程序,主要目的是收集网页数据来训练大语言模型(LLM),帮助AI工具生成更准确、更人性化的回答。随着ChatGPT、Claude、Perplexity等AI平台的兴起,AI爬虫已经成为网络流量中的重要组成部分。
根据Vercel和MERJ的研究数据,AI爬虫的流量规模已经相当可观:OpenAI的GPTBot在过去一个月内在Vercel网络上产生了5.69亿次请求,Anthropic的Claude产生了3.7亿次请求。这个组合流量约占Googlebot同期45亿次请求的20%,显示出AI爬虫已经成为网络爬虫生态中的重要力量。
AI爬虫的类型
AI爬虫主要有两种用途:模型训练(收集数据训练LLM)和实时检索(在用户查询时实时抓取网页内容,提供最新信息和引用链接)。模型训练类爬虫(如GPTBot、ClaudeBot)会持续抓取网页内容,用于训练和优化AI模型;实时检索类爬虫(如ChatGPT-User、OAI-SearchBot)在用户查询时才会抓取网页,用于提供最新信息和引用来源。
模型训练类爬虫关注的是收集大量高质量内容来训练模型,它们会抓取各种类型的网页内容,包括HTML、图片、JavaScript文件等。实时检索类爬虫则关注的是在用户查询时快速获取最新信息,它们通常会参考搜索引擎索引(如Bing索引)来找到相关网页,然后抓取这些网页的内容来生成回答。
主流AI爬虫
主要的AI爬虫包括:GPTBot(OpenAI用于模型训练的爬虫)、ChatGPT-User(OpenAI用于实时检索的爬虫)、OAI-SearchBot(OpenAI用于构建搜索索引的爬虫)、ClaudeBot(Anthropic的爬虫)、PerplexityBot(Perplexity的爬虫)、Bytespider(字节跳动的爬虫)、Amazonbot(亚马逊的爬虫)等。
OpenAI的爬虫系统包括多个用户代理:GPTBot用于训练模型,ChatGPT-User用于实时检索,OAI-SearchBot用于构建ChatGPT Search的搜索索引。Anthropic的ClaudeBot是通用的网页爬虫,用于训练Claude AI模型。PerplexityBot用于构建Perplexity AI驱动的搜索引擎索引,减少对第三方搜索引擎的依赖。这些爬虫通常从美国数据中心(如爱荷华州、亚利桑那州、俄亥俄州)进行抓取。
AI爬虫行为特点
AI爬虫的行为特点与搜索引擎爬虫存在显著差异:JavaScript渲染能力:大多数AI爬虫(如GPTBot、ClaudeBot)目前不执行JavaScript,只能读取初始HTML响应中的内容。只有Google的Gemini(使用Googlebot基础设施)和AppleBot具备完整的JavaScript渲染能力。这意味着使用客户端渲染(CSR)的Web应用可能无法被AI爬虫正确抓取。
内容类型优先级:AI爬虫对不同内容类型的优先级不同。ChatGPT优先抓取HTML内容(57.70%的请求),Claude重点关注图片(35.17%的请求)。两者都会花费大量时间抓取JavaScript文件(ChatGPT:11.50%,Claude:23.84%),尽管它们不执行这些文件。这可能是因为AI模型需要学习各种形式的Web内容,包括JavaScript代码作为文本数据。
抓取效率:AI爬虫的抓取效率相对较低。ChatGPT有34.82%的请求返回404错误,Claude有34.16%的请求返回404。ChatGPT还有14.36%的请求跟随重定向。相比之下,Googlebot只有8.22%的请求返回404,1.49%的请求跟随重定向。这表明AI爬虫在URL选择和验证方面还需要改进。
地理位置分布:所有AI爬虫都从美国数据中心运行。ChatGPT从爱荷华州得梅因和亚利桑那州凤凰城运行,Claude从俄亥俄州哥伦布运行。相比之下,传统搜索引擎(如Googlebot)从多个地理位置(包括美国7个不同位置)进行抓取,确保全球覆盖。
如何管理爬虫访问
网站所有者需要根据品牌目标和风险收益来决定是否允许爬虫访问网站内容。对于电商网站,允许所有主要AI爬虫访问可能是有益的,既能贡献品牌叙事,又能通过实时检索向消费者展示最新内容。对于内容发布商,可能需要更细致的策略来保护网站内容不被AI搜索总结,这可能影响自然流量和网站参与度。
允许爬虫访问的策略
如果您希望被爬虫抓取,建议采取以下策略:优先使用服务端渲染:ChatGPT和Claude不执行JavaScript,因此任何重要内容都应该服务端渲染。这包括主要内容(文章、产品信息、文档)、元信息(标题、描述、分类)和导航结构。使用SSR、ISR和SSG可以确保所有爬虫都能访问您的内容。
客户端渲染仍可用于增强功能:对于非必要的动态元素(如查看计数器、交互式UI增强、实时聊天小部件、社交媒体Feed),可以继续使用客户端渲染。这些功能不影响爬虫对核心内容的抓取。
高效的URL管理:AI爬虫的高404率凸显了维护正确重定向、保持sitemap更新、使用一致的URL模式的重要性。确保所有重要页面都有正确的重定向,避免404错误,可以帮助爬虫更高效地抓取内容。
将最新和最重要的内容推送到顶级索引:使用sitemap、IndexNow等协议,以及直接将内容推送到Bing,都是主动通知搜索引擎索引有新内容需要抓取的方式。这可以鼓励AI爬虫专注于您的优先内容,充分利用它们的抓取预算。
需要指出的是,上述策略虽然常被称为"GEO"(Generative Engine Optimization,生成式引擎优化)建议,但实际上它们本质上也是SEO建议。因为大多数搜索引擎爬虫虽然具备JavaScript渲染能力,但如果JavaScript内容过多或加载缓慢,同样会影响抓取效率。更重要的是,AI爬虫本身存在不少问题(如高404率、不执行JavaScript等),而目前大部分网站的SEO基础都很薄弱,就想直接做GEO优化,这属于"还没学会走就想学跑"的情况。目前市场上并没有很多真正GEO原生的优化方式,大部分GEO优化都是给SEO做加法。做好GEO其实很简单:在内容用户友好、搜索引擎友好的基础上,再做到大语言模型友好,并且确保AI爬虫和LLM联网搜索调用的搜索API可见即可。
阻止爬虫访问的策略
如果您不希望被爬虫抓取,可以使用以下策略:使用robots.txt控制爬虫访问:robots.txt文件对所有测量的爬虫都有效。通过指定用户代理或产品令牌来设置特定规则,限制AI爬虫访问敏感或非必要内容。要找到要禁止的用户代理,您需要查看每家公司的文档(例如,Applebot和OpenAI的爬虫)。
使用防火墙阻止AI爬虫:Vercel的WAF(Web Application Firewall)提供了阻止AI机器人防火墙规则,可以一键阻止AI爬虫。此规则自动配置防火墙以拒绝它们的访问。其他CDN和托管平台也提供类似的机器人管理功能。
需要注意的是,如果大规模阻止AI爬虫而不加区分,您可能会错过在非Google平台上搜索您的产品或服务的消费者。AI模型的知识集受限于训练它们的数据,如果品牌阻止所有AI爬虫访问其网站,这些爬虫将从其他来源(第三方网站、评论、竞争对手等)了解品牌。在AI搜索中保持品牌叙事控制的唯一方法是贡献模型对您品牌的了解。
如果您不希望网站内容被大模型抓取训练,还有一个简单的方法:多塞点JavaScript进去。由于大多数AI爬虫不执行JavaScript,将重要内容放在JavaScript渲染的部分可以有效阻止AI爬虫抓取这些内容(当然,这也会影响SEO效果,需要权衡)。
Bot流量管理
Bot流量(机器人流量)是指由自动化程序而非真实用户产生的网站访问流量。根据Imperva(网络安全公司Thales的子公司)发布的2025年"Bad Bot报告",2024年自动化机器人流量首次超过人类生成的流量,占全球互联网流量的51%,这是十年来Bot流量首次超过人类流量。这一历史性转变主要归因于人工智能(AI)和大语言模型(LLM)的兴起,它们简化了Bot的创建和规模化部署。
恶意Bot(Bad Bots)的增长尤为显著:2024年恶意Bot占互联网总流量的37%,比2023年的32%有所增长,这是恶意Bot活动连续第六年增长。相比之下,2023年Bot流量几乎与人类流量相等,占所有互联网活动的49.6%,其中恶意Bot占32%,良性Bot占17.6%。AI工具的普及降低了网络攻击者的门槛,使他们能够大规模创建和部署恶意Bot,这些AI驱动的Bot越来越复杂,能够模仿人类行为并逃避传统安全措施。
这一变化对网站运营产生了深远影响。在互联网上,超过一半的"用户"实际上是自动化程序,而非真实的人类用户。这意味着网站分析数据可能被严重扭曲,广告投放效果可能被夸大,内容推荐算法可能受到干扰。对于某些行业(如旅游业),影响更为严重:2024年旅游业中恶意Bot占其流量的41%,成为受攻击最严重的行业,占所有Bot攻击的27%,比2023年的21%有所增长。
Bot流量主要分为两类:良性Bot(如搜索引擎爬虫、AI爬虫、监控工具等)和恶意Bot(如内容抓取器、垃圾邮件机器人、DDoS攻击机器人等)。良性Bot对网站运营有积极作用,而恶意Bot则可能造成数据泄露、服务器过载、内容被盗用等问题。
识别Bot流量的方法包括:分析用户行为模式(Bot通常有重复、可预测的行为)、检查用户代理字符串(Bot可能使用过时或可疑的用户代理)、监控IP地址和地理位置(恶意Bot可能来自异常的地理位置)、分析会话时长和页面浏览数(Bot的会话特征与真实用户不同)等。
管理Bot流量的策略包括:使用Web应用防火墙(WAF)过滤恶意Bot、设置速率限制防止Bot过度访问、使用CAPTCHA验证用户身份、配置robots.txt文件控制爬虫访问、定期监控和分析网站日志识别异常流量等。对于良性Bot(如搜索引擎爬虫),应该允许其正常访问,以确保网站内容能够被正确索引和发现。
然而,并非所有声称遵守规则的Bot都会真正遵守robots.txt协议。多个调查显示,一些AI公司存在违反robots.txt标准的行为。WIRED在2024年6月进行的调查发现,AI搜索公司Perplexity使用了一个未公开的IP地址(44.221.181.252)来绕过网站的robots.txt限制,秘密抓取网站内容。在Condé Nast(WIRED的母公司)的服务器日志中,这个IP地址在过去三个月内至少访问了822次,而实际数字可能更高。更严重的是,Perplexity的AI聊天机器人不仅存在违规抓取的问题,还存在"幻觉"(hallucination)问题:WIRED的测试发现,Perplexity在某些情况下会编造内容,而不是真正访问和总结文章。例如,当WIRED创建一个测试网站并要求Perplexity总结时,Perplexity并没有访问该网站,而是编造了一个完全不相关的故事。在另一个测试中,Perplexity错误地声称WIRED报道了不存在的事件,这些问题揭示了AI搜索工具在准确性和可靠性方面仍存在严重缺陷。
字节跳动(TikTok的母公司)的Bytespider爬虫同样存在类似问题。根据Kasada(专门从事Bot管理的公司)和Fortune在2024年10月的研究,Bytespider于2024年4月发布后,迅速成为互联网上最激进的抓取Bot之一。Bytespider的抓取速度是OpenAI的GPTBot的约25倍,是Anthropic的ClaudeBot的约3000倍。更令人担忧的是,Bytespider同样不遵守robots.txt协议,尽管网站所有者明确表示不希望其内容被抓取。数据显示,Bytespider在过去六周内的抓取活动出现了巨大的峰值,显示出其抓取行为的激进程度。字节跳动的这种激进抓取行为可能与其在生成式AI领域的落后有关:据报道,字节跳动去年在生成式AI竞赛中落后太多,甚至使用OpenAI来帮助构建自己的LLM(这违反了OpenAI的服务条款)。字节跳动可能正在努力追赶,通过大规模抓取网络数据来训练新的AI模型,以改进TikTok的搜索功能。
如果您想了解更多关于Bot流量管理的信息,可以查看我们的网站流量管理完整指南。
结论
网络爬虫是搜索引擎和AI系统的基础组件,它们在发现和抓取网页内容方面发挥着关键作用。搜索引擎爬虫(如Googlebot、Bingbot)经过多年优化,具备完整的JavaScript渲染能力,能够高效地构建搜索索引。AI爬虫(如GPTBot、ClaudeBot)虽然规模较小,但已经成为网络流量中的重要组成部分,在模型训练和实时检索方面发挥着重要作用。
网站所有者需要了解搜索引擎爬虫和AI爬虫的差异,制定合适的爬虫管理策略。对于希望被爬虫抓取的网站,应该优先使用服务端渲染,确保关键内容能够被所有爬虫访问。对于不希望被爬虫抓取的网站,可以使用robots.txt和防火墙来阻止特定爬虫。无论选择哪种策略,都应该基于品牌目标和风险收益进行综合考虑。
如果您想了解更多关于搜索引擎工作原理的信息,可以查看我们的搜索引擎如何工作完整指南。
常见问题
引用文献
Vercel Blog. "The rise of the AI crawler." https://vercel.com/blog/the-rise-of-the-ai-crawler
Botify. "What Are AI Crawler Bots?" https://www.botify.com/insight/ai-crawler-bots
OpenAI. "OpenAI Crawler Documentation." https://platform.openai.com/docs/bots
WIRED. "Perplexity Is a Bullshit Machine." https://www.wired.com/story/perplexity-is-a-bullshit-machine/
Fortune. "TikTok's parent launched a web scraper that's gobbling up the world's online data 25 times faster than OpenAI." https://fortune.com/2024/10/03/bytedance-tiktok-bytespider-scraper-bot/