用于 Web 数据提取的 Portia 替代方案

已发表: 2019-07-15
目录显示
可视化网页抓取工具有哪些优势?
视觉网络抓取工具在哪些方面存在不足?
我们还有哪些其他选择?
DaaS 提供商与内部团队?
结论

Portia 是一个可视化工具,允许用户在没有任何编程知识的情况下抓取网站。 它是一项托管服务,但由于视觉刮板的使用减少,它已被取消,今天不再使用。 那么当 Portia 存在时人们是如何使用它的呢? 要使用 Portia,您需要输入需要访问的 URL 模式,然后通过点击手势或使用 CSS 或 XPath 在这些网页中选择元素。 尽管易于使用,但 Portia 的最大问题如下:

  • 与其他开源网络抓取工具相比,这是一个耗时的控制工具。
  • 浏览网站很难处理。
  • 当您开始爬网时,您需要提及目标页面,以防止 Portia 访问不必要的 URL。
  • 没有办法插入数据库来保存您抓取的数据点。

可视化网页抓取工具有哪些优势?

当您有一次性 Web 抓取需求时,您可以使用可视化 Web 抓取器,但不建议将其用作业务工作流程的一部分。 如果您经营的企业需要从很少的静态网页中抓取数据,而且这种情况非常偶然(比如每月一次),您可以让团队中的某个人知道必须抓取哪些数据才能理解可视化网络爬虫在几个小时内运行,然后不时提取网络数据。 可视化网络爬虫对于缺乏技术团队且抓取要求极低的小型企业特别有用。

可视化网络爬虫几乎与单击网页上的“检查元素”并从 HTML 内容中复制粘贴数据的人相同。 相反,当您使用可视网络抓取工具时,您最终会单击网页的一部分,软件会为您将数据复制到您选择的位置。

波西亚替代品

视觉网络抓取工具在哪些方面存在不足?

但是,当您有一些繁重的工作要做时,视觉刮板就达不到要求了。

您可能需要将抓取一些数据作为业务工作流程的一部分(应该是自动化的)。
数据可能需要从数百或数千页中抓取,并且可能需要非常频繁地刷新。

可能需要为特定业务模块提供抓取数据的实时馈送。 在上述大多数情况下,基于代码的网络爬虫会比视觉爬虫更方便。

大多数大规模抓取项目发现需要抓取大量类似的网页以获取有关不同项目的 Web 数据提取数据。 这些项目的范围可以从电子预订网站上的航班信息到电子商务网站上的产品详细信息。 此类场景应用的逻辑是,您尝试使用几个网页来了解数据在网页中存储的模式,并使用代码不仅可以抓取具有完全相同结构的页面,甚至可以抓取具有相似结构的页面. 此外,在抓取网站上所有可用页面时,可能需要忽略具有特定结构的页面。 所有这些自定义都不能在视觉刮板上实现,因此不建议使用视觉刮板刮掉太多页面。

另一方面,由于网站的外观和感觉每隔几周或几个月就会发生变化,因此每次网站的用户界面发生变化时,您可能都需要训练您的视觉网络抓取工具。 另一方面,当使用基于代码的爬虫时,通常 UI 更改甚至可能不需要对爬虫进行任何更改,因为网站在结构上可能仍然保持不变。 即使用户界面中有一些可能需要更改刮板的更改,更改通常也是最小的,并且根据更改调整刮板非常简单。

我们还有哪些其他选择?

Portia 有许多替代品。 世界各地的开发人员和网络抓取团队正在使用 Python、R 和 Golang 等语言从网页中提取网络数据。 正在开发新的方法来加快这一过程。 例如,借助 Golang 中的并行编程和缓存,使用名为 Colly 的包,您可以使用如下自定义设置:

  1. 您希望在任何给定时间同时抓取的页面数。
  2. 一旦开始从网页抓取,抓取器应该去的最大深度。 (这意味着,如果您将最大深度设置为 3,它将爬取首页,转到其中找到的 URL,对其进行爬取,然后转到该页面中找到的 URL,并对其进行爬取,但是现在在第三页中,如果它找到一个 URL,它将不再继续)。
  3. 您可以设置检查 URL 中存在的单词 - 也就是说,如果 URL 中存在单词,则必须抓取该 URL 中的网页。 或者您可以设置排除项 - 带有特定单词的 URL,不应被抓取工具访问。

这些只是您在自己构建网络爬虫时获得的数百个微小功能中的一些示例。

DaaS 提供商与内部团队?

大多数缺乏技术团队的企业,甚至对任何脚本语言没有基本了解的成员,都应该尽量不要开始建立内部抓取团队。 这背后的原因很简单。 您在招募开发人员然后让他们为您的业务需求构建和维护一个全新的网络抓取系统所花费的资金将是巨大的。 归根结底,如果您是一家小公司,并且网络抓取不是您业务的燃料(也就是说,您的业务不以您从网络上抓取的数据为中心),那么构建一个内部团队。

在这种情况下,简单的解决方案是 DaaS 提供商,他们会满足您的要求并以您选择的格式为您提供数据。 我们 PromptCloud 的团队非常自豪地将网络抓取减少到企业和企业的两步过程。

结论

虽然可视化工具对业务团队有好处,但我们可以同意网络抓取不仅仅是一项简单的业务任务。 这是一项需要高效、快速和完全可定制的任务。 如果您有大量网络抓取需求或想要更大规模地提取网络数据,建议使用网络抓取服务。

如果您不擅长编程或您的要求很复杂,您可以使用像 PromptCloud 这样的完全托管的服务提供商以自动化的方式获取干净的数据,而无需任何技术麻烦或学习任何工具。