返回博客
指南
Sorin-Gabriel MaricaLast updated on Apr 10, 20262 min read

每位开发者都必须了解的7大PhantomJS替代方案

每位开发者都必须了解的7大PhantomJS替代方案

如果您刚开始接触 JavaScript 编程,相信您一定听说过 PhantomJS。尽管它如今已不再流行,但在当时它可是元老级工具。

PhantomJS于2011年1月问世,迅速改变了开发者与网站交互的方式。

Vitaly Slobodin 是 PhantomJS 的开发者兼维护者。遗憾的是,当他在 2017 年 4 月决定卸任时,该项目便宣告终止。他列举了多个原因,我们将在本文后文详细探讨。

既然 PhantomJS 已不复存在,你需要了解其替代方案。我们稍后也会介绍这些。但在那之前,你必须先了解 PhantomJS 的核心本质。

什么是 PhantomJS?

什么是 PhantomJS?

PhantomJS 是一款无头浏览器,通常用于网络自动化,即自动化处理网页上的手动任务。

开发者还利用 PhantomJS 在任意网页上运行 JavaScript 并抓取网站数据。通过它,您可以抓取绝大多数现代网页抓取工具(如 WebScraping API)所能获取的数据。

那么,什么是无头浏览器?

无头浏览器是一种不具备图形用户界面(GUI)的浏览器。简而言之,它与 Google Chrome、Safari 和 Mozilla Firefox 不同。它通过编程方式进行控制,无需您手动打开想要操作的网页。

开发者青睐无头浏览器的理由包括:

  • 速度。
  • 减轻系统负担。
  • 从网站抓取数据。
  • 单元测试。

许多人一直不解,既然 PhantomJS 如此优秀,为何还要将其弃用?答案就在维塔利·斯洛博丁(Vitaly Slobodin)的这封邮件中。

请看这封邮件中,他提到Chrome比PhantomJS更快、更稳定。除此之外,他还强调了独自开发PhantomJS的困难。

这些正是他不得不卸任的主要原因。

7 款出色的 PhantomJS 替代方案

7 款出色的 PhantomJS 替代方案

既然您已了解 PhantomJS 消亡的原因,现在是时候了解一些替代方案,以便您能继续使用无头浏览器。此外,这些替代方案在过去五年中已取得长足发展,并提供了更丰富的功能。

以下是我们精选的 7 款出色的 PhantomJS 替代方案,您今天就可以开始使用:

  • 无头Chrome
  • Selenium
  • CasperJS
  • Zombie.js
  • BrowserSync
  • HtmlUnit
  • 网页抓取API1 . 无头Chrome

无头版Chrome是我们的首选,因为Vitaly Slobodin本人曾特别推荐过它。

这款无头浏览器已被数十万开发者日常使用。PhantomJS 的各项功能和特性在无头 Chrome 中均可找到。

众所周知,Google Chrome 始终处于网页浏览器的前沿。许多浏览器,如 Opera、Vivaldi 和 Google Chrome,都是基于 Chromium 构建的。对于不了解的人来说,Chromium 是 Google 创建的一个开源浏览器。

无头版Chrome的推出恰逢PhantomJS停止维护之际。它最初作为Chrome第59版的一部分亮相。此后,每一版Chrome都内置了无头版Chrome。目前,Chrome已运行至第105版,因此我们可以知道,谷歌对无头版Chrome的实验和优化已持续了一段时间。

优点:

  • 支持大量功能。
  • 内存占用更低。
  • 由于是无头浏览器,调试较为便捷。
  • 安装相对快速简便。
  • 速度更快,稳定性更高。
  • 全天候支持。
  • 定期更新。

缺点:

  • 无头Chrome几乎完美,许多开发者更青睐它。 2. Selenium

Selenium 于 2002 年问世,至今已有约 20 年历史。它与 PhantomJS 类似,同样用于自动化 Web 应用程序,并协助测试网页的各个部分。

打开 Selenium 官网,映入眼帘的是以绿白为主色调的页面,顶部醒目地写着“Selenium 实现浏览器自动化”。网站从一开始就明确表明,该工具的核心宗旨在于自动化。

向下滚动一点,你会看到 Selenium 能为你提供的三种帮助。它们是:

  • 基于浏览器的回归测试自动化。
  • 创建故障复现和自动化脚本。
  • 在多台机器上同时运行测试。

Selenium 通过其三大服务——Selenium WebDriver、Selenium IDE 和 Selenium Grid——来实现这三个目标。坦白说,每位开发者使用无头浏览器的理由各不相同。该网站在首页顶部对这些用途的突出展示做得非常出色。

请注意,Selenium 既有其优点,也有其缺点。

优点:

  • 实现浏览器自动化。
  • 提供多种服务,各司其职。
  • 它是开源的,这意味着会不断进行更新 
  • 配置简单。

缺点:

  • 若需帮助,没有专门的技术支持。
  • 不支持移动应用程序。

3. CasperJS

CasperJS 是一款无头浏览器。该浏览器的主要用途是浏览、编写脚本和测试网页。CasperJS 通常用于 UI 测试,而其他无头浏览器则用于单元测试。CasperJS 可自动完成表单填写、点击链接、截屏、下载资源等众多任务。  

优点:

  • 高级第三方集成
  • 采用 JavaScript 编写
  • CasperJS 易于上手。

缺点:

  • 不适用于单元测试。
  • 有时截图不够准确。

4. Zombie.js

Zombie.js 是一款以惊人速度著称的无头浏览器(至少,这是他们官网上的说法)。它是一款功能完备的工具,可用于前端和后端测试。它基于 Node.js 并能完美运行于 JavaScript 环境。许多开发者青睐它,因为它是一个轻量级的框架。它能快速测试客户端代码。

优点:

  • 基于 Node.js 运行,集成简单。
  • 将其集成到您的框架中也相当简单。
  • 速度极快。
  • 轻量级。对机器造成的负载微乎其微。

缺点:

  • 无法截屏
  • 文档不完整。
  • 没有技术支持。
  • 无法加载许多网站。

5. Browsersync

Browsersync 是一款无头浏览器,但同时它又不是无头浏览器。让我解释一下。你可以按两种方式使用它:在命令行上测试网页和提取数据,或者如果你想要一个图形界面来辅助操作,这也是可以的。  Browsersync 每月下载量超过 200 万次。这是一个相当可观的数字,相信您也能猜到,既然有这么多开发者信赖它,它一定有其过人之处。像 Google 和 Adobe 这样的知名企业也都在使用 Browsersync。

优点:

  • 运行迅捷且完全免费。
  • 自动保存 URL。
  • 支持图形用户界面(GUI)或命令行(CL)操作。
  • 在 Windows、Mac OS 和 Linux 系统上运行流畅。
  • 开源,因此持续更新。
  • 无需浏览器插件。
  • 在桌面和移动设备上运行无障碍。

缺点:

  • 在 Windows 上配置 Browsersync 可能会有些棘手。

6. HtmlUnit

由 Mike Bowler 编写并采用 Apache 2.0 许可证发布的 HtmlUnit,可作为无头浏览器或无 GUI 浏览器使用。它采用 Java 编写,与 JavaScript 的兼容性极佳。

借助这款无头浏览器,您可以填写表单、点击链接,并完成浏览器所能实现的所有操作。官网表示HtmlUnit的JavaScript功能正在持续改进,这对开发者而言是个好消息。

据称它还能与复杂的 AJAX 库良好兼容,并支持 HTTP 和 HTTPS 协议。

优点:

  • 免费且易于配置。
  • 能有效处理复杂的库。
  • 可通过 HtmlUnit 进行测试。
  • 还能从网站中提取信息。
  • 同样适用于Android系统。

缺点:

  • 功能有限,因此对于需要丰富功能的用户来说并非理想选择。

7. WebScraping API

7. WebScraping API

今天博客中介绍的大多数 PhantomJS 替代方案也用于从网站中提取数据。虽然它们的表现仅处于中等水平,但像 WebScraping API 这样的工具却将一切提升到了一个新的高度。

WebScraping API 绝非普通的网页抓取工具。它无疑是顶尖的抓取工具之一,仅需每月 49 美元的低廉价格即可提供如此丰富的功能。您可以选择最适合的定价方案,从而获得最佳的投资回报率。

通常,您为网页抓取工具支付的费用越高,获得的功能和API调用次数就越多,因为许多工具在功能上仅存在细微差异。然而,它们的收费几乎是WebScraping API的两倍。

超过10,000家知名企业信赖这款工具,它能高效完成各项任务,同时避免让忙碌的企业主分心于其核心目标。德勤(Deloitte)、珀瑞戈(Perrigo)和InfraWare等众多知名企业,都选择WebScraping API作为其提取增值数据的首选工具。

WebScraping API 的运作原理十分简单。它通过一个简单的 API 从任何网页收集 HTML 内容,并以通俗易懂的方式呈现给您,因为我们深知并非所有人都擅长解读复杂数据。

许多网页抓取工具虽然起初能完成任务,但随后往往会被网站封禁。选择 WebScraping API 即可彻底解决这一问题。当您拥有这款卓越的工具时,IP 封禁和验证码将成为历史。

优点:

  • 99.99% 的运行时间意味着您无需等待,即可从目标网站提取关键数据。
  • 企业客户可从地理定位功能中获益匪浅,因其覆盖范围超过195个地区。
  • WebScrapingAPI 团队提供持续支持,让您无需为任何问题担忧。  
  • 四种不同的套餐方案,适合任何规模的企业。

缺点:

  • 我们无法找出使用 Web Scraping API 的任何缺点。

Web Scraping API 是我的首选替代方案

Web Scraping API 是我的首选替代方案

既然您已经读完了这篇博客,我们知道您可能仍然感到困惑,因为在如此多的优质选项中做出选择并非易事。但请放心,我们已经为您选定了最佳方案,您无需再为此花费时间和金钱。

产品

  •  ScaperAPI

我们的 ScraperAPI 工具能助您轻松从网页中提取数据。借助我们易于使用的 API,您可以快速便捷地获取任何在线页面的原始 HTML 内容。

此外,我们会自动处理 JavaScript 渲染、验证码和代理服务器,让您能专注于获取所需数据。如果您需要收集数据用于分析或研究,ScraperAPI 就是您的理想工具。

  • Google 搜索引擎结果抓取工具

您可使用 WebScrapringAPI 抓取搜索引擎结果页面(SERPs),从中获取广告、自然搜索结果、地图、图片、购物数据、评论、知识图谱等信息。此外,搜索结果可转换为结构化的 JSON、CSV 或 HTML 数据。这使获取所需数据变得简单,让您能够专注于利用这些数据来提升企业竞争力。

对于希望充分利用数据的企业和个人而言,WebScrapringAPI 是一款绝佳工具。凭借其用户友好的界面和强大的功能,它是从 SERP 中提取数据的理想工具。

  • 亚马逊产品抓取工具

对于希望收集亚马逊产品数据信息的人士而言,WebScrapingAPI 是理想之选。借助该工具,您可以从所有类别和国家/地区获取完整的 JSON、CSV 或 HTML 格式的产品详情。这些信息包括评论、价格、描述、ASIN 数据、畅销商品、新品发布和优惠活动。

功能:

  • 360度全景网页抓取:Web Scraper API 全面支持各类网页抓取任务及应用场景,例如市场分析、价格监控、运输费用信息、房地产数据、金融数据等。
  • 获取格式化数据:借助我们的自定义提取规则功能,您只需一次API调用,即可根据个人需求获取结构化的JSON数据。快速的数据流将为您的业务带来竞争优势。
  • JavaScript交互:为确保数据采集精准,您可像专业人士一样操作JavaScript网站——在目标页面上点击、滚动,并在组件加载期间运行独特的JS代码。
  • 安全性:为发现潜在危险信息或泄露数据,可针对任何网站构建自动化数据提取流程。
  • 数据图像:将目标网站页面或部分区域的高分辨率截图集成到您的工具或应用程序中。Web Scraper API 可提供截图、结构化 JSON 数据及原始 HTML 内容。
  • 企业级扩展:我们通过优化软硬件基础设施来降低不必要的成本。借助我们的云基础设施,大规模精准数据采集变得简单易行。

定价:

WebScrapingAP 根据您的需求提供多种定价方案。企业版包含定制流量 API 额度、亚马逊搜索 API、产品提取 API、优先级电子邮件支持以及专属客户经理,月费起价 299 美元。入门版月费起价 49 美元。

结论

与其他方案相比,WebScrapingAPI 更胜一筹。为什么?因为该工具功能丰富。不仅功能密集,更充满了用户真正需要的功能。这是一个能够自动从网页中提取结构化与非结构化数据的平台,对于数据管理至关重要。

WebScrapingAPI 提供大规模网页爬取、干净的代码、99.99% 的运行时间、提升性能的最新架构、一系列高性价比的套餐,并赢得了全球 10,000 多家企业的信赖。

关于作者
Sorin-Gabriel Marica, 全栈开发工程师 @ WebScrapingAPI
Sorin-Gabriel Marica全栈开发工程师

索林·马里卡(Sorin Marica)是 WebScrapingAPI 的全栈及 DevOps 工程师,负责开发产品功能并维护确保平台平稳运行的基础设施。

开始构建

准备好扩展您的数据收集规模了吗?

加入2,000多家企业,使用WebScrapingAPI在无需任何基础设施开销的情况下,以企业级规模提取网络数据。