在数据提取和分析中,抓取搜索引擎结果对于寻求大量数据以获得见解或应用程序的研究人员、开发人员和分析师至关重要。认识到刮擦的重要性 必应搜索结果 解锁大量信息,使用户能够利用 Bing 庞大的数据库。
本指南采用 JavaScript Puppeteer 和 Crawlbase 的实用方法来抓取 Bing 搜索结果 Crawling API。我们将深入探讨 JavaScript Puppeteer 对简化与 Bing 搜索引擎交互的重要性,并了解如何整合 Crawlbase Crawling API 确保无缝访问 Bing 结果,轻松绕过常见的抓取问题。
与我们一起探索 Bing SERP 抓取,我们掌握先进的网络抓取技术,以释放 Microsoft Bing 作为有价值的数据源的全部潜力。
目录
一、了解Bing的搜索页面结构
二.先决条件
三.设置 Puppeteer
- 准备编码环境
- 使用 Puppeteer 抓取 Bing SERP
IV. 设置 Crawlbase Crawling API
- 获取API凭证
- 准备编码环境
- 使用以下方式抓取 Bing SERP Crawling API
五、傀儡师 vs Crawling API
六.常见问题 (FAQ)
一、了解Bing的搜索页面结构
搜索引擎在帮助用户浏览互联网上浩瀚的信息海洋方面发挥着关键作用。凭借其独特的功能和不断增长的用户群,微软的 Bing 成为网络搜索领域的重要参与者。截至 2024 年 1.3 月,Bing.com 的全球独立访问者数量接近 1.4 亿,证明了其在在线领域的广泛使用和影响力。尽管与上个月的 XNUMX 亿访问者相比略有下降,并且远远落后于 Google,但 Bing 在提供搜索结果方面仍然具有重要意义。
来源
在我们开始使用抓取工具之前,了解 Bing SERP(搜索引擎结果页面)的布局非常重要,就像我们的 目标网址 对于本指南。 Bing 通常以包含各种元素的格式呈现搜索结果,您可以使用网络抓取技术从这些元素中提取有价值的信息。以下是结构和您可以抓取的数据的概述:
必应 SERP 结构
1. 搜索结果容器
- Bing 在容器中显示搜索结果,通常以列表格式,每个结果都有一个不同的块。
2. 单独的搜索结果块
- 每个搜索结果块包含有关特定网页的信息,包括标题、描述和链接。
3。 标题
- 搜索结果的标题是代表网页的可点击标题。用户必须快速识别结果的相关性。
4。 描述
- 描述提供了网页上内容的简短摘要或片段。它为用户提供了有关链接页面的预期内容的附加上下文。
5。 链接
- 该链接是与搜索结果关联的网页的 URL。单击链接会将用户引导至相应的网页。
6. 结果视频
- Bing 可能会直接在搜索结果中包含视频结果。这些可以是来自各种来源的视频,例如 YouTube、Vimeo 或其他视频平台。
要抓取的数据:
1.职称
- 提取每个搜索结果的标题以了解网页的主要主题或主题。
2. 说明
- 抓取描述以收集有关每个网页内容的简洁信息。这对于创建摘要或片段很有用。
3。 链接
- 捕获与每个搜索结果关联的网页的 URL。这些链接对于导航到源页面至关重要。
我们将向您展示如何使用 Crawling API 抓取上述数据。此外,我们将使用方法 page.evaluate
在 Puppeteer 中执行由 Puppeteer 控制的页面上下文中的函数。该函数运行在浏览器环境中,可以访问页面内的DOM(文档对象模型)和JavaScript变量。这是一个例子:
1 2 3 4 5 6 7 8
| 常量 结果= 等待 页面。评估(() => { 回报 排列.在(文件.查询选择器全部('li.b_algo'))。地图((列表、索引) => ({ 位置:索引+ 1, 标题: 列表。查询选择器('h2a').文本内容, 网址: 列表。查询选择器('h2a').获取属性('href'), 描述: 列表。查询选择器('p.b_algoSlug').文本内容, })); });
|
让我们进入本指南的主要部分,我们将引导您完成使用 Puppeteer 的过程,以及 Crawling API 逐步抓取 Bing SERP 数据。
二.先决条件
在开始之前,请确保您具备以下先决条件:
- 节点.js: 确保您的计算机上安装了 Node.js。您可以从以下位置下载: Node.js 官方网站。
- npm(节点包管理器): npm 通常包含在 Node.js 安装中。通过在终端中运行以下命令来检查它是否可用:
如果显示版本,则说明npm已安装。如果没有,请确保 Node.js 已正确安装,因为 npm 与其捆绑在一起。
安装 Node.js 和 npm 可确保在使用 Puppeteer 或 Crawling API.
三.设置 Puppeteer
木偶戏 是由 Google Chrome 团队开发的功能强大的 Node.js 库。它提供了一个高级 API,可以通过 DevTools 协议控制无头或完整浏览器,使其成为 Web 抓取和自动化测试等任务的绝佳选择。在深入研究 Puppeteer 项目之前,我们先设置一个 Node.js 项目并安装 Puppeteer 包。
准备编码环境
- 创建 Node.js 项目
打开终端并运行以下命令以使用默认设置创建基本 Node.js 项目:
该命令生成一个 package.json
文件,其中包含有关您的项目及其依赖项的元数据。
- 安装木偶师:
设置项目后,使用以下命令安装 Puppeteer 包:
此命令下载并安装 Puppeteer 库,使您能够以编程方式控制浏览器。
- 创建索引文件:
要编写网络抓取工具的代码,请创建一个 index.js
文件。使用以下命令生成文件:
该命令创建一个空的 index.js
您将在其中编写用于抓取 Bing SERP 数据的 Puppeteer 脚本的文件。您可以选择将其更改为您喜欢的任何文件名。
使用 Puppeteer 抓取 Bing SERP
初始化 Node.js 项目、安装 Puppeteer 并安装 index.js
文件准备就绪后,您就可以利用 Puppeteer 的功能进行网页抓取了。复制下面的代码并将其保存到您的 index.js
文件中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| 常量 傀儡师= 要求(‘傀儡师’); 常量 FS = 要求('fs');
异步 功能 获取必应数据(搜索字符串){ 常量 浏览器= 等待 木偶师。发射({ 无头: '新的', });
常量 页 = 等待 浏览器。新的一页();
等待 页面。转到(`https://bing.com/search?q=${编码URI(搜索字符串)}`);
等待 页面。等待选择器('.b_pag');
常量 结果= 等待 页面。评估(() => { 回报 排列.在(文件.查询选择器全部('li.b_algo'))。地图((列表、索引) => ({ 位置:索引+ 1, 标题: 列表。查询选择器('h2a').文本内容, 网址: 列表。查询选择器('h2a').获取属性('href'), 描述: 列表。查询选择器('p.b_algoSlug').文本内容, })); });
等待 浏览器。关闭();
领事.日志(结果);
fs。写文件同步('bing-serp.json', JSON.串化({ 结果 }, 空, 2));
回报 结果; }
获取必应数据(“三星 s23 ultra”);
|
让我们使用一个简单的命令来执行上面的代码:
如果成功,您将获得 JSON 格式的结果,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| { “结果”: [ { “位置”: 1, “标题”: “三星 Galaxy S23 Ultra | 三星美国 - 三星......”, “网址”: “https://www.samsung.com/us/smartphones/galaxy-s23-ultra/”, “说明”: “WebMeet 最新款 Galaxy S23 Ultra 手机,其设计以地球为中心,配备内置 S Pen、夜景摄像头和强大的芯片,可用于史诗般的游戏。” }, { “位置”: 2, “标题”: “三星 Galaxy S23 Ultra - 完整手机规格......”, “网址”: “https://www.gsmarena.com/samsung_galaxy_s23_ultra-12024.php”, “说明”: “Web三星 Galaxy S23 Ultra Android 智能手机。2023 年 6.8 月发布。配备 8 英寸显示屏、Snapdragon 2 Gen 5000 芯片组、XNUMX mAh 电池,...” }, { “位置”: 3, “标题”: 《三星Galaxy S23 Ultra | 三星PK》, “网址”: “https://www.samsung.com/pk/smartphones/galaxy-s23-ultra/”, “说明”: “WebMobile。智能手机。Galaxy S23 Ultra。来认识一下全新的 Galaxy S23 Ultra,它的设计以地球为中心,配备内置 S Pen、夜景摄像头和强大的芯片,可实现史诗般的游戏。” }, { “位置”: 4, “标题”: “三星 Galaxy S23 Ultra 2023 年在巴基斯坦的价格”, “网址”: “https://www.whatmobile.com.pk/Samsung_Galaxy-S23-Ultra”, “说明”: “Web三星 Galaxy S23 Ultra - Ultra 公司的超级智能手机三星正在推出一款新的 Galaxy S23,它的绰号是......” }, { “位置”: 5, “标题”: “三星 Galaxy S23 Ultra 5G - 相机和规格”, “网址”: “https://www.samsung.com/ph/smartphones/galaxy-s23-ultra/”, “说明”: “网页探索全新三星 Galaxy S23 Ultra 5G,配备精致的夜间摄像头、6.8 英寸 120Hz 自适应防眩光显示屏和史诗般的性能。跳至三星和 Cookie 内容” }, { “位置”: 6, “标题”: “三星 Galaxy S23 Ultra | 三星加拿大”, “网址”: “https://www.samsung.com/ca/smartphones/galaxy-s23-ultra/”, “说明”: “WebGalaxy S23 Ultra 立即购买 Ultra Reborn 重新设计的夜景相机 革命性的游戏处理器 著名的 S Pen 专家评测亮点介绍...” }, { “位置”: 7, “标题”: “Galaxy S23 Ultra:官方介绍影片 | 三星 - YouTube”, “网址”: “https://www.youtube.com/watch?v=BSYsXVFzmKA”, “说明”: “Web1 Feb 2023 · 有什么新鲜事?新款 Galaxy S23 Ultra。用我们迄今为止最强大的处理器、拥有史诗夜景功能的专业级相机以及强大的电子功能来分享史诗般的故事……” }, { “位置”: 8, “标题”: “三星 Galaxy S23 Ultra 评测 | 汤姆指南”, “网址”: “https://www.tomsguide.com/reviews/samsung-galaxy-s23-ultra”, “说明”: “Web18 Sep 2023 · 三星 Galaxy S23 Ultra 凭借高达 200MP 的摄像头和许多其他摄影改进将三星的旗舰产品提升到了一个新的水平。您还可以获得高通 Snapdragon 8 ...” }, { “位置”: 9, “标题”: “三星 Galaxy S23 Ultra 2024 年在巴基斯坦的价格”, “网址”: “https://priceoye.pk/mobiles/samsung/samsung-galaxy-s23-ultra”, “说明”: “网上购买三星 Galaxy S23 Ultra 巴基斯坦最低价格为 494,999 卢比/-。查看所有在线商店的价格,比较规格、功能并获取最新优惠和礼券。查看亮点、规格……” }, { “位置”: 10, “标题”: “三星 Galaxy S23 Ultra:发布日期、价格、规格……”, “网址”: “https://www.techradar.com/news/samsung-galaxy-s23-ultra”, “说明”: “Web1 Feb 2023 · 三星 Galaxy S23 Ultra 以及与之一起推出的智能手机将于 17 月 XNUMX 日星期五发布。这些设备现在就可以预订,不过如果您想获得……” } ] }
|
IV. 设置 Crawlbase 的抓取工具
现在我们已经介绍了 Puppeteer 的步骤,让我们来探索一下 Scraper。如果您是第一次使用 Scraper,请执行以下操作:
获取API凭证:
- 注册 Scraper:
- 开始于 报名 在 Crawlbase 网站上获取 Scraper 的访问权限。
- 访问API文档:
- 检索 API 凭证:
- 在文档或您的帐户中查找您的 API 凭证(例如 API 密钥) 帐户信息中心。这些凭证对于向 Scraper 验证您的请求至关重要。
准备编码环境
要使用 Crawlbase Scraper 启动你的 Scraper 项目并成功设置抓取环境,请按照以下命令操作:
- 创建项目文件夹
此命令创建一个名为“bing-serp”的空文件夹来组织您的抓取项目。
- 导航到项目文件夹
使用此命令进入新创建的目录并准备编写抓取代码。
- 创建JS文件
该命令生成一个 index.js
您将在其中编写抓取工具的 JavaScript 代码的文件。
- 安装Crawlbase包
这款 Crawlbase节点包 用于与包括 Scraper 在内的 Crawlbase API 进行交互,允许您在不被阻止的情况下获取 HTML 并有效地从网站抓取内容。
使用 Scraper 爬取 Bing SERP
完成编码环境设置后,我们现在可以开始将 Scraper 集成到我们的脚本中。
复制下面的代码并确保替换 "Crawlbase_TOKEN"
使用您的实际 Crawlbase API 令牌进行正确的身份验证。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| 常量 { 爬虫API } = 要求('crawlbase');
常量 FS = 要求('fs');
常量 接口= 新 爬虫API({ 象征: 'Crawlbase_TOKEN' });
常量 bingSerpURL = 'https://www.bing.com/search?q=samsung+s23+ultra';
常量 选项= { JavaScript的: true, };
API .得到(bingSerpURL,选项) .然后((响应) => { 常量 抓取数据 = 响应。JSON.身体;
fs。写文件同步('bing_scraped.json', JSON.串化({ 刮数据 }, 空, 2)); }) .捕捉((错误) => { 领事.日志(错误, '错误'); });
|
使用一个简单的命令执行上面的代码:
结果应为 JSON 格式,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| { “抓取的数据”: { “搜索结果”: [ { “位置”: 1, “标题”: “三星 Galaxy S23 Ultra | 三星美国 - 三星电子美国”, “网址”: “https://www.samsung.com/us/smartphones/galaxy-s23-ultra/”, “说明”: “WebGalaxy S23 Ultra。我们通过 200MP 摄像头和有史以来最快的移动处理器提高了标准。** 运营商特别优惠。立即购买。超进化。200MP 摄像头,手机上最高分辨率。我们有史以来最快的移动处理器* * 高级夜间摄影。内置 S Pen 和相机快门按钮。看看其他人怎么说。” }, { “位置”: 2, “标题”: “规格 | 三星 Galaxy S23 Ultra | 三星美国”, “网址”: “https://www.samsung.com/us/smartphones/galaxy-s23-ultra/specs/”, “说明”: “立即网上购买。360° 视角。*颜色可用性可能因国家/地区或运营商而异。*在线独家颜色仅在 Samsung.com 上提供。显示器。针对沉浸式游戏进行了优化。6.8\"* 3088 x 1440 (Edge Quad HD+)峰值亮度。 1750 尼特。 HDR。 1200 尼特。 HBM。 1200 尼特。自适应刷新率。 1~120Hz。清晰地观察外面。” }, { “位置”: 3, “标题”: “三星 Galaxy S23 Ultra 评测 | 汤姆指南”, “网址”: “https://www.tomsguide.com/reviews/samsung-galaxy-s23-ultra”, “说明”: “WebSep 18, 2023 · 三星 Galaxy S23 Ultra 凭借高达 200MP 的摄像头和许多其他摄影改进将三星的旗舰产品提升到了一个新的水平。您还可以获得高通 Snapdragon 8 Gen...” }, { “位置”: 4, “标题”: “三星 Galaxy S23 Ultra | 三星加拿大”, “网址”: “https://www.samsung.com/ca/smartphones/galaxy-s23-ultra/”, “说明”: “WebGalaxy S23 Ultra。来认识一下全新的 Galaxy S23 Ultra,它的设计旨在实现更好的可持续性,并配备内置 S Pen、夜景摄像头和强大的芯片,可用于史诗般的游戏。” }, { “位置”: 5, “标题”: “Galaxy S23 Ultra:官方介绍影片 | 三星 - YouTube”, “网址”: “https://www.youtube.com/watch?v=BSYsXVFzmKA”, “说明”: “Web1 年 2023 月 6.55 日 · 106 万订阅者。已订阅。25K。分享。11 个月前 23 万次浏览#GalaxyS23 #SharetheEpic #Samsung。有什么新鲜事?新款 Galaxy SXNUMX Ultra。与我们最强大的人分享史诗......” }, { “位置”: 6, “标题”: “三星 Galaxy S23、S23+、S23 Ultra:有什么......”, “网址”: “https://www.pcmag.com/news/samsung-galaxy-s23-vs-s23-plus-vs-s23-ultra-whats-the-difference”, “说明”: “Web1 年 2023 月 5 日 · 23G。三星 Galaxy S23、S23+ 与 S23 Ultra:有什么区别?Galaxy SXNUMX 系列中的所有三款型号都提供优质的性能和功能,但您应该购买哪一款?我们...” }, { “位置”: 7, “标题”: “三星 Galaxy S23 Ultra 评测:不屈不挠的表演家”, “网址”: “https://www.techradar.com/reviews/samsung-galaxy-s23-ultra”, “说明”: “Web13 年 2023 月 23 日·三星 Galaxy S2 Ultra。无合同。数据 68.18GB。免费。预付费。每月 XNUMX 美元。/月。访问网站。” }, { “位置”: 8, “标题”: “Galaxy S23 Ultra,512GB(已解锁)| 三星美国”, “网址”: “https://www.samsung.com/us/smartphones/galaxy-s23-ultra/buy/galaxy-s23-ultra-512gb-unlocked-sm-s918uzrfxaa/”, “说明”: “Web了解 Galaxy S23 Ultra 主要功能。与专家交谈。Galaxy S23 Ultra Galaxy S23 | S23+ 连接。选择您的运营商。缺货。缺货。缺货。存储。256GB。1,199.99 美元。512GB。1,379.99 美元。1TB . 1,619.99 美元. ... 立即登录即可赚取高达 undefined% 的三星奖励积分。” }, { “位置”: 9, “标题”: “三星 - Galaxy S23 Ultra 256GB(已解锁)- 幻影黑”, “网址”: “https://www.bestbuy.com/site/samsung-galaxy-s23-ultra-256gb-unlocked-phantom-black/6529723.p”, “说明”: “在 Best Buy 网上购买三星 Galaxy S23 Ultra 256GB(无锁版)Phantom Black。查找每日低价并在线购买,享受送货或店内提货服务。价格匹配保证。” }, { “位置”: 10, “标题”: “三星 Galaxy S23 Ultra - 完整手机规格 - GSMArena.com”, “网址”: “https://www.gsmarena.com/samsung_galaxy_s23_ultra-12024.php”, “说明”: “Web三星 Galaxy S23 Ultra。2023年发布,17月234日。8.9克,13毫米厚度。Android 14,最高至Android 6,One UI 256。512GB/1GB/52TB存储,无卡插槽。11,347,994% 1485次点击。XNUMX成为.. ”。 } ], “视频搜索结果”: [], “相关搜索”: [], “结果数”: 14400000 } }
|
五、Puppeteer 与 Crawlbase Scraper 对比
在决定使用 Puppeteer 还是 Crawlbase 的 Scraper 来使用 JavaScript 抓取 Bing 搜索引擎结果页面 (SERP) 时,需要考虑几个因素。让我们分析一下每个选项的优缺点:
傀儡师:
优点:
- 完全控制: Puppeteer 是一个无头浏览器自动化库,它提供对浏览器的完全控制,允许您像用户一样与网页交互。
- 动态内容: Puppeteer 非常适合抓取具有动态内容和大量 JavaScript 使用的页面,因为它呈现页面并执行 JavaScript。
- 定制: 您可以广泛自定义抓取逻辑,使其适应特定的网站结构和行为。
- 灵活性: Puppeteer 并不局限于抓取。它还可用于自动化测试、截屏、生成 PDF 等。
缺点:
- 学习曲线: Puppeteer 可能有一个更陡峭的学习曲线,特别是对于初学者来说,因为它涉及了解浏览器如何工作并以编程方式与它们交互。
- 资源密集型: 与更简单的抓取解决方案相比,运行无头浏览器可能会占用大量资源,消耗更多内存和 CPU。
- 开发时间: 创建和维护 Puppeteer 脚本可能需要更多的开发时间,从而可能增加总体项目成本。
Crawlbase 的 Scraper:
优点:
- 易于使用: Crawlbase API 设计为用户友好型,使开发人员无需大量编码或浏览器自动化知识即可轻松快速上手。
- 可扩展性: Crawlbase API 是一种基于云的解决方案,具有可扩展性并且无需您管理基础设施问题。
- 代理管理: Crawlbase API 自动处理代理和 IP 轮换,这对于避免 IP 禁令和提高可靠性至关重要。
- 成本效益: 根据您的抓取需求,使用 API 之类的服务可能会更具成本效益,特别是当您不需要无头浏览器的广泛功能时。
缺点:
- 有限的定制: 与 Puppeteer 相比,Crawlbase API 在定制方面可能存在限制。如果您需要高度专业化的抓取逻辑,它可能不那么灵活。
- 对外部服务的依赖: 您的抓取过程依赖于外部服务,这意味着您受其服务可用性和政策的影响。
总结
如果满足以下条件,请选择 Puppeteer:
- 您需要对抓取过程进行完全控制和定制。
- 您知道开发时间可能会更长,从而可能会增加成本。
- 您可以轻松管理无头浏览器,并愿意投入时间学习。
如果符合以下情况,请选择 Crawlbase API:
- 您想要一个快速且易于使用的解决方案,而不需要深入的浏览器自动化知识。
- 可扩展性和代理管理对于您的抓取需求至关重要。
- 您更喜欢托管服务和简单的解决方案来快速部署项目。
- 考虑到潜在的开发时间和资源,您的目标是寻求更具成本效益的解决方案。
最终,Puppeteer 和 Crawlbase API 之间的选择取决于您的特定要求、技术专长以及在控制和易用性方面的偏好。
如果您喜欢本指南,请查看 Crawlbase 的其他抓取指南。请参阅下面我们推荐的“操作方法”指南:
如何抓取 Flipkart
如何抓取 Yelp
如何刮玻璃门
六.常见问题 (FAQ)
问:我可以将 Crawlbase API 用于其他网站吗?
是的,Crawlbase API 与其他网站兼容,尤其是亚马逊、谷歌、Facebook、LinkedIn 等热门网站。检查 Crawlbase API 文档 查看完整列表。
问:Crawlbase API 有免费试用版吗?
是的,前 1,000 个免费请求对于常规请求是免费的。如果您需要 JavaScript 渲染,您可以订阅任何付费包。
问:Crawlbase API 可以隐藏我的 IP 地址以避免被阻止或禁止吗?
是的。Crawlbase API 在每个请求上使用数百万个代理来有效绕过常见的抓取问题,如机器人检测、CAPTCHA 和 IP 阻止。
如果您对本指南或 API 有其他问题或疑虑,我们的产品专家将很乐意为您提供帮助。请不要犹豫 联系我们的支持团队。 快乐刮擦!