以下是我推荐的 5 大 Node-fetch 替代方案,可供您在解决方案中使用
- Axios
- Got
- Superagent
- Request
- WebscrapingAPI
我将逐一为您介绍,以便您更好地了解它们是什么以及它们能提供什么。
让我们开始吧!
1. Axios
Axios 是一个基于 Promise 的 HTTP 客户端,适用于 Node.js 和浏览器。它与 SuperAgent 一样,能够自动解析 JSON 响应。Axios 支持并发查询的能力使其更具优势。总之,
安装 Axios
图片来源
您可以通过传递相应的配置来进行请求。
图片来源
由于其简单易用,一些开发者更倾向于使用 Axios 而不是内置 API。然而,许多人高估了此类库的必要性。node-fetch 完全能够实现 Axios 的核心功能。
流行度
- +440万次 npm 下载
- +1.56 万个模块依赖于它
- +5.7 万 GitHub 星标
- 71位贡献者
- +4.4K 个分叉
功能
- 在浏览器中发起 XMLHttpRequest
- 支持 Promise API
- 在 Node.js 中发起 HTTP 请求
- 拦截响应和请求
- 取消请求
- 转换响应和请求数据
- JSON 数据自动转换
- 自动数据对象序列化
- 客户端支持
优点
- Axios 允许您通过提供一个配置对象来全面设置和自定义请求。它能够监控 POST 请求的状态,并自动对 JSON 数据进行修改。
- Axios 也是使用最广泛的前端 HTTP 请求模块。它广受欢迎,并遵循最新的 JavaScript 设计模式。它支持请求取消、重定向、gzip/deflate 压缩、元数据处理以及钩子功能。
缺点
- Axios 不支持 HTTP/2、Stream API 和 Electron。它也不支持请求重试,且仅在内置 Promise 支持的 Node.js 环境中运行。旧版本需要 Q Promise 或 Bluebird 支持。 2. Got
Got 是另一个面向 Node.js 的易用且强大的 HTTP 请求框架。它最初是作为流行包 Request 的轻量级替代方案而设计的。请查看这张详尽的对比表,了解 Got 与其他库的差异。
安装 Got
图片来源
Got 提供了 JSON 有效负载处理选项。
图片来源
与 SuperAgent 和 Axios 不同,Got 不会自动解析 JSON。要启用此功能,需在代码中添加 { JSON: true } 作为参数。
根据文档记载,Got 的诞生源于请求体积过大(其大小达数GB!)。(实际接收数据为 4.46 MB 对比 302 KB)。
流行度
- +620 万次 npm 下载
- +2.5K 个依赖 Got 的模块
- +280 个分叉
- +5,000 GitHub 星标
- 71 位贡献者
功能
- 支持 HTTP/2
- 支持 PromiseAPI 和 StreamAPI
- 失败时重试
- 支持重定向
优点
- 与其他替代方案相比,Got 支持更多功能,且因其易于使用、安装体积小巧,并紧跟所有 JavaScript 新趋势,正日益受到欢迎。
缺点
SuperAgent 是一个微型 HTTP 请求库,可在 Node.js 和浏览器中用于执行 AJAX 请求。
SuperAgent 提供了数千个插件,可用于执行诸如防止缓存、转换服务器有效载荷以及对 URL 添加后缀或前缀等任务。
安装 SuperAgent
图片来源
在 Node 中的用法
图片来源
您还可以通过创建自己的插件来扩展功能。SuperAgent 还能为您解析 JSON 数据。
流行度
- 250 万次 npm 下载
- +6.4K 个模块依赖于 SuperAgent
- +1.2K 分支
- GitHub 上 +1.4 万个星标
- 182 位贡献者
优点
- SuperAgent 以提供流畅的 HTTP 请求接口、插件架构以及多种现成插件而闻名(例如,其 prefix 插件可为每个 URL 添加前缀)。
- Superagent 还提供了流和 Promise API、请求取消、请求失败时的重试、支持 gzip/deflate 以及处理进度事件。
缺点
- Superagent 当前构建失败。此外,它不提供类似 XMLHttpRequest 的上传进度跟踪功能
- 它不支持定时器、元数据错误或钩子。 4. Request
Request 是最受欢迎的 Node.js 简单 HTTP 请求客户端之一,也是最早发布到 npm 注册表的模块之一。
图片来源
它每周下载量超过 1400 万次,旨在成为在 Node.js 中执行 HTTP 请求的最简单方式。
文件也可以流式传输到 POST 或 PUT 请求中。此方法将比较文件扩展名映射内容类型到文件扩展名。
您还可以在 options 对象中自定义 User-Agent 等 HTTP 头。
属性
- +900 万次 npm 下载
- +6.4K 个模块依赖于 Request
- +3.2K 分支
- GitHub 上 +2.52 万个星标
- 126 位贡献者
功能
优点
- Request 易于入门且使用简单。
- 这是一个用于发起 HTTP 请求的流行且广泛使用的模块
缺点
自 2020 年起,该模块已被完全弃用。预计不会有新的更新
5. WebScrapingAPI
我必须承认,WebScrapingAPI 为我从网络抓取数据时遇到的难题提供了切实可行的解决方案。WebScrapingAPI 帮我节省了时间和金钱,让我能够专注于产品开发。
WebScrapingAPI 是一款企业级、可扩展且易于使用的 API,可帮助收集和管理 HTML 数据。别忘了,您所有的网络爬虫解决方案都集成在一个 API 中,这意味着代码更加简洁。
图片来源
向 API 发送最基础的请求非常简单:只需设置 API 密钥、URL 参数以及您要抓取网站的访问密钥即可。
了解 WebScrapingAPI 提供的功能对于我们的网页抓取之旅至关重要。这些信息可在详尽的文档中获取,其中包含多种编程语言的代码示例。
我曾多次遭遇反制措施,它们会检测并阻止我的机器人执行任务。这是因为并非所有网站都能被抓取。有些网站会采用浏览器指纹识别和验证码等反制措施,这确实令人头疼。
应对机器人检测技术可能颇具挑战,但 WebScrapingAPI 提供了从 CAPTCHA 到 IP 封禁及自动重试的解决方案,全面管理这些情况。您只需专注于自己的目标,其余一切都由他们处理。
来源
该平台拥有卓越的技术实力,配备超过 1 亿个代理,确保您不会被封禁。这是因为某些网站仅允许在全球特定地区进行抓取。为此,您需要通过代理来访问其数据。
鉴于管理代理池难度较大,WebScrapingAPI将为您包办一切。它拥有数百万个轮换代理,确保您始终不被察觉。您还可以通过特定IP地址访问受地理限制的内容。
该 API 支持 JavaScript 渲染。您可通过真实浏览器启用此功能。启用后,您将看到用户端显示的全部内容,包括使用 AngularJS、React 或其他库构建的单页应用。
图片来源
用户所见即您所获。还有什么比这更强大的竞争优势呢?
此外,该 API 的基础设施构建于亚马逊网络服务(AWS)之上,为您提供海量、安全且可靠的全球数据访问。
坦率地说,使用 WebScrapingAPI 绝对是明智之选。
优点
- 基于 AWS 构建
- 价格实惠
- 极致追求速度的架构
- 每个包都支持 JavaScript 渲染
- 优质服务、高在线率及绝对稳定性
- 超过 1 亿个轮换代理,有效降低被封锁风险
- 可自定义功能
缺点
目前尚无。
定价
- 使用此 API 的入门套餐为每月 49 美元。
- 免费试用选项
如果您觉得没有时间从头开始构建网络爬虫,WebScrapingAPI 是一个不错的选择。不妨去了解一下。
为何 WebScrapingAPI 是我的首选推荐:
我推荐 WebScrapingAPI,因为它通过一个 API 为所有人提供了简单直观的网页抓取解决方案。它还拥有业界顶尖的用户界面,让数据抓取变得轻而易举。
该 API 功能强大,足以胜任您的任务。
让我们花点时间想想,您将掌握多少数据资源。别忘了,您可以借此获取行业竞争情报,从而为客户提供更优惠的方案。
WebScrapingAPI 助您实现定价优化。如何做到?让我这样解释:通过更清晰地掌握竞争对手动态,您的业务将获得显著增长。当行业价格波动时,您可以利用该 API 的数据来制定企业生存策略。
图片来源
在搜索您想购买的商品时,WebScrapingAPI 非常实用。您可以利用这些数据比较不同供应商的价格,从而选择最划算的交易。
此外,您无需担心被封禁。为什么?因为该 API 确保您能无障碍获取所需数据。凭借数百万个轮换代理,您可保持隐身状态,并通过特定 IP 地址访问受地理限制的内容。
这难道不酷吗?
该 API 的基础设施还构建在亚马逊网络服务(AWS)之上,为您提供海量、安全且可靠的全球数据。因此,Steelseries、德勤(Deloitte)和 Wunderman Thompson 等公司都信赖该 API 来满足其数据需求和网络爬虫服务。
来源
此外,月费仅需 49 美元。我对它的速度着迷不已。凭借全球轮换代理网络,目前已有超过 10,000 名用户在使用其服务。这就是为什么我推荐使用 WebScrapingAPI 进行数据抓取。
使用领先的网页抓取 REST API,开启您的抓取之旅