开始试用
返回

用 Python 爬取 Bing:抓取 Bing 搜索结果的完整指南

用你偏好的 AI 总结本文
试用我们的高级代理

无限量测试我们的优质代理,畅享卓越质量。

  • 移动代理和住宅代理
  • ZIP 级别定位
  • 静态 IP 和轮换 IP
  • 内置质量过滤器
立即试用

抓取 Bing 是指用代码从 Bing 的搜索结果页面中提取结构化数据,而不是手动复制。开发者抓取 Bing 是为了跟踪排名、监控竞争对手、构建研究数据集,或用新鲜的搜索数据为内容管道提供支持。

与 Google 相比,Bing 也友好得多。它的 HTML 更可预测,反爬虫系统没那么激进,分页也极其简单。这使它成为在挑战更难目标之前学习抓取基础知识的绝佳起点。

读完本指南,你将拥有一个可用的 Python 抓取器,它能够发送请求、解析结果、遍历多个页面、处理错误,并将干净的数据导出为 CSV 或 JSON。我们还将介绍如何 代理 一旦你不再只是运行几条测试查询,就能融入正式的抓取方案中。

使用干净的住宅和移动代理扩展你的 Bing 抓取工具。NodeMaven 起价 $3.50,含 750 MB 流量

开始试用

什么是 Bing 抓取?

每次你在 Bing 上搜索时,服务器都会返回一个完整的 HTML 页面。这个页面被称为 SERP,即搜索引擎结果页(search engine results page)的缩写。抓取 Bing 意味着以编程方式发送同样的请求,并从原始 HTML 中提取结构化数据。

获取该数据有两种方式:

  • HTML 抓取

自己请求页面,解析标记,提取你需要的内容。

  • APIs

使用一项返回结构化 JSON 而非 HTML 的服务,这样你就能完全跳过解析步骤。

本指南聚焦于 HTML 抓取,因为它让你拥有完全的控制权,除了你自己的基础设施之外无需任何成本。 以下是基本流程:

典型的使用场景包括排名跟踪、 SEO 竞争对手研究、市场情报、新闻监测、 SERP 抓取 以及为 NLP 项目构建训练数据。

为什么抓取 Bing 而不是 Google?

Google 备受关注,但对于抓取项目来说,Bing 往往是更实用的目标。它仍占据着相当可观的搜索流量份额,而且它的结果页面处理起来要容易得多。

因素BingGoogle
HTML 结构简单且一致的类名经常被混淆和压缩的类名
反机器人防护具有速率限制的中等防护采用 JavaScript 挑战和 CAPTCHA 的强力防护
SERP 稳定性布局很少发生变化布局经常变化,可能会导致选择器失效
购物结果可通过标准 HTML 访问通常需要专用的 API 或额外的渲染
图片结果易于从 HTML 响应中解析经常通过 JavaScript 动态加载
新闻结果可在标准页面标记中获取通常嵌入在动态小部件内部

这些都不意味着 Bing 毫无防护。它仍然会对激进的流量进行限速,并封锁明显的机器人行为模式。但入门门槛更低,这使它成为大多数项目更好的起点。

你可以从 Bing 抓取哪些数据?

一个标准的 Bing SERP 不仅仅包含蓝色链接。根据查询的不同,你可以抓取到:

  • 自然搜索结果的标题
  • 指向来源页面的 URL
  • 摘要,即每条结果下方的简短描述
  • 来自图片搜索或内嵌图片轮播的图片
  • 购物商品,包括价格以及商家(如果存在的话)
  • 新闻文章,附带来源和时间戳
  • 相关搜索,对关键词扩展很有用

并非每个字段都会出现在每个 SERP 上。本地商家查询拉取的数据与商品查询不同,因此你的解析器应当优雅地处理缺失字段,而不是抛出错误。

这也是为什么从 Bing 搜索中抓取数据非常适合竞争对手研究的原因。一次查询就可以同时返回自然搜索结果、相关搜索,有时还包括购物或新闻内容。

几乎每个抓取项目都会遇到这个问题,而诚实的答案是:这取决于你如何操作。

抓取任何人无需登录即可查看的公开页面,在大多数司法管辖区通常被视为合法。各国法律各不相同,本文不构成法律意见。你可以在我们的以下内容中获取有关该主题的更多信息 关于抓取合法性的博客文章.

有几点需要记住:

  • 检查 robots.txt。 它表明了网站所有者的偏好,即便在某些地方它并不具有法律约束力。
  • 遵守速率限制。 无论你在收集什么数据,用大量请求猛烈冲击服务器都可能构成滥用。
  • 阅读服务条款。 Bing 的条款限制某些自动化访问,因此大规模商用应谨慎处理。
  • 负责任地抓取。 添加延迟,避免服务器过载,并且绝不抓取个人数据或需要授权访问的数据。

如果你的项目以任何实际规模进行抓取,或为商业产品提供数据支持,请咨询一位熟悉你所在地区数据采集法律的律师。

要求

你只需要少数几个库就能让抓取工具正常运行。

  • requests 库 用于发送 HTTP 请求
  • beautifulsoup4 用于解析 HTML
  • pandas 用于组织和导出数据
  • lxml 作为 BeautifulSoup 更快的解析器后端
  • 可选: selenium 如果你需要渲染大量依赖 JavaScript 的页面

核心设置到此就完成了。等我们进入扩展阶段后,再添加代理支持。

在抓取 Bing 时避免 CAPTCHA 和 IP 封锁。使用来自 NodeMaven 的优质住宅和移动代理,起价 $3.50

开始试用

如何用 Python 抓取 Bing 搜索结果

以下是我们要逐步构建的完整工作流程:创建会话、发送带有正确请求头的请求、解析结果、遍历各个页面,并将所有内容导出到文件。每一步都建立在上一步的基础之上。

创建一个 requests 会话

会话对象会在多次请求之间复用底层的 TCP 连接,这比每次都发起独立的 requests.get() 调用要快速、真实得多。

设置真实的 User-Agent 和 Accept-Language 请求头很重要。缺少这些请求头的请求看起来明显是自动化的,会更快被标记。

发送请求

用超时和异常处理包裹每一个请求。生产环境中的抓取工具会不断因网络错误而失败,你的代码需要能够扛住这些情况。

注意重试之间采用了指数退避。固定延迟用于测试没问题,但要扩大规模,就需要让延迟随着每次失败尝试而增长。

解析搜索结果

Bing 会将每条自然搜索结果放在结构固定的容器元素中,因此用 BeautifulSoup 提取标题、URL 和摘要非常简单。

始终要防范缺失的元素。Bing 偶尔会渲染出没有摘要的结果,而一个假设每个字段都存在的脚本会在遇到第一个边缘情况时崩溃。

处理分页

Bing 通过一个名为的查询参数进行分页 首先。第一页完全没有参数,第二页从 11 开始,第三页从 21 开始,以此类推,每次递增 10。

这里两个空页面的规则很重要。Bing 偶尔会在一组结果中间返回一个内容稀薄或空白的页面,如果仅仅在遇到第一个空页面时就停止,就会导致你的数据被截断而不完整。

借助优质的轮换住宅代理和移动代理,稳定采集 Bing 搜索结果。低至 $3.50 即可开始。

开始试用

将结果导出为 CSV

当你有了一个字典列表之后, pandas 一行代码就能把它转换成一个干净的文件。

在这里按 URL 去重是值得做的,因为相互重叠的页面有时会把同一条结果返回两次。

高级 Bing 抓取技巧

一个在测试中能处理十个查询的抓取工具,在生产环境中处理一千个查询时往往会崩溃。这些技巧正是为了弥合这一差距。

  • 重试逻辑

已内置于 fetch_page 如上所述,但要根据每个查询的重要程度来调整重试次数。

  • 指数退避

每次失败后将延迟加倍或加三倍,可以避免你继续猛烈冲击一个已经在对你限速的服务器。

  • 轮换 User Agent

循环使用一组逼真的浏览器字符串,可以让流量看起来不那么单一。

  • 持久会话

复用一个 requests.Session() 每个工作线程复用连接,而不是不断创建新连接。

  • 随机延迟

请求之间固定的延迟本身就是一种指纹。请在一个区间内对其进行随机化。

  • 结构化日志记录

记录每一次失败,并附上足够的上下文,以便日后调试时无需重新运行整个任务。

这些技巧单靠自身都无法永远奏效。一旦你每天运行成百上千次查询,真正的瓶颈就会变成你的 IP 地址,而不是你的代码。

Bing 搜索 API 与 HTML 抓取对比

Microsoft 过去曾提供官方的 Bing Search API,但其可用性和定价随时间发生过变化,因此在将其用于生产项目之前,值得先核实一下当前的条款。

因素官方 APIHTML 抓取
数据格式干净的 JSON 响应需要解析的原始 HTML
成本按请求计费仅需基础设施成本,例如代理和服务器
可靠性稳定的 API 契约当 Bing 更改其页面标记时可能会失效
数据深度仅限于有文档记录的字段可以访问页面上任何可见的内容
速率限制由你的 API 套餐决定由 Bing 的机器人检测系统决定
设置时间快速,只需调用端点即可速度较慢,因为你需要构建并维护一个解析器

当你需要少量且可预测的查询量,又不想维护解析代码时,使用官方 API。当你需要 API 未提供的数据字段,或抓取量大到 API 费用迅速累积时,使用 HTML 抓取。

大多数寻找 Bing 搜索抓取 API 的团队最终都会在某个阶段两种方式都尝试一遍。API 设置起来更快,而一旦你需要 API 未涵盖的字段,或者你的查询量很大导致按请求计费变得昂贵时,HTML 抓取就更胜一筹。

使用高质量的住宅代理和移动代理构建可用于生产环境的 Bing 抓取工具。以 $3.50 开启你的 NodeMaven 试用,含 750 MB 流量

开始试用

常见挑战

每个 Bing 抓取工具最终都会遇到这同样的几个问题。

  • 403 Forbidden

通常意味着你的请求头看起来像是自动化程序发出的,或者你的 IP 已经被标记了。

  • 429 请求过多

你发送请求的速度超过了 Bing 对该 IP 允许的限速。

  • CAPTCHAs

当 Bing 确信某个请求是自动化发起时,就会显示这些验证。放慢速度并轮换 IP 可以减少你遇到它们的频率。

  • IP 封禁

来自同一个 IP 的反复激进请求,可能会导致该 IP 被封锁数小时甚至更久。

  • 地域限制

某些 SERP 功能,比如本地结果或特定地区的新闻,只有当请求来自该地区时才会显示。

  • HTML 变更

Bing 会定期更新其标记。今天有效的选择器,下个月可能会悄无声息地返回空结果。

这些问题大多归结于一个根本原因:来自过少 IP 地址的请求过多,发送速度过快,且缺乏足够的变化来让请求看起来像真人。

使用住宅代理进行 Bing 抓取

一旦你的抓取工具需要每天运行、覆盖多个地区或处理庞大的关键词列表,单个 IP 地址就会成为瓶颈。这正是代理发挥作用的地方。

住宅代理 通过真实的 ISP 分配的 IP 地址路由你的请求,而不是使用容易被标记的数据中心 IP 段。这对抓取来说很重要,因为搜索引擎对数据中心流量的怀疑程度要高得多。

有几个值得理解的概念:

  • 轮换代理 为每个请求分配一个新的 IP,从而自动将流量分散到一个庞大的 IP 池中。
  • 粘性会话会在设定的时间段内保持相同的 IP,当你需要让分页请求在同一次搜索会话中保持一致时非常有用。
  • 地理定位功能让你可以请求来自特定国家或城市的 IP,从而精准抓取特定地区的 SERP。
  • IP 信誉会影响你遇到 CAPTCHA 的频率。干净的住宅 IP 通常比反复使用的数据中心 IP 被标记的概率要低得多。

这正是像 NodeMaven 如何融入到工作流程中。NodeMaven 提供带有粘性会话和城市级地理定位的住宅代理,这正好涵盖了搜索引擎抓取最关键的两件事:看起来像真实流量,以及精确控制流量看起来来自哪里。

NodeMaven 仪表板

以下是代理支持如何接入我们已经构建好的抓取工具:

最佳实践

  • 在将 Bing 抓取工具投入生产环境之前,先做一份快速检查清单:
  • 为每个请求设置真实可信的 User-Agent 和 Accept-Language
  • 始终设置超时,绝不要让请求无限期挂起
  • 添加带指数退避的重试逻辑
  • 随机设置请求之间的延迟,而不要使用固定的休眠时间
  • 在一个小而真实的池中轮换 User Agent
  • 一旦查询量超过每天寥寥几次,就改用住宅代理
  • 在导出之前按 URL 对结果进行去重
  • 记录足够详细的失败日志,以便无需重新运行任务即可调试
  • 检查 robots.txt 并将请求频率保持在合理范围内
  • 妥善处理缺失字段,而不是假设每条结果的结构都完全一致

大规模抓取 Bing,不受速率限制。NodeMaven 提供的高级住宅和移动代理起价仅 $3.50,含 750 MB 流量

开始试用

常见问题

在大多数司法管辖区,抓取公开页面通常是允许的,但服务条款和当地法律同样重要。在大规模抓取之前,请先核查这两方面。

不需要,HTML 抓取不需要 API 密钥。而官方的 Bing Search API 确实需要,还需要搭配一个定价方案。

通常这是多种因素叠加的结果:缺少请求头、请求之间没有延迟,以及从同一个 IP 地址反复发出请求。

是的,在相关查询中两者都会出现在标准 HTML 中。你需要为每种结果类型使用各自的选择器。

Bing 的 HTML 更加稳定,其反爬虫防护也更为宽松,这使得可靠抓取变得更容易。

通常不需要。Bing 的核心搜索结果会在初始 HTML 响应中加载,因此大多数情况下使用 requests 和 BeautifulSoup 就足够了。

Bing 并未公布固定的数值。它取决于你的 IP 历史记录、请求模式,以及你在请求之间添加了多少延迟。

没有任何代理能保证零封锁。与数据中心 IP 相比,代理能显著降低封锁率,尤其是在配合真实的请求头和延迟时。

结论

用 Python 抓取 Bing 搜索结果归结为几个核心部分:正确配置的会话、对结果标记的仔细解析、可靠的分页处理,以及围绕这一切的稳健错误处理。Bing 可预测的结构使它成为一个适合培养这些技能的宽容平台。

本指南中的代码是构建一个可用抓取器的坚实基础,而不仅仅是一个玩具示例。随着你的查询量增长,主要的制约因素将从解析逻辑转移到你的 IP 信誉上,而这正是 住宅代理 以及合理的速率限制开始变得最为重要。

您可能还喜欢 这些文章

本网站使用 Cookie 文件 来提升您的使用体验。继续访问即表示您同意我们使用 Cookie。