algorithm - 一种从网页中提取产品数据的通用算法

标签 algorithm data-extraction

<分区>

前言:这似乎是一个非常初级的问题,可能很愚蠢或表述不当。这就是为什么我不需要一个确定的答案,而只是一个提示,一个点,我可以从中着手。

我正在考虑使用脚本,它可以让我解析不同在线零售商(例如亚马逊)的产品页面。以下信息将从产品页面中提取:

  • 产品图片
  • 价格
  • 可用性(有货/缺货)

该算法的关键在于,一旦实现,它就应该适用于任何零售商、任何产品页面。因此它非常通用。

什么技术可以实现这样的算法?甚至可以编写这样一个通用解析器吗?

最佳答案

如果产品页面上的信息以结构化、机器可读的方式标记,例如使用 schema.org microdata , 然后你可以将页面 HTML 解析成 DOM 树,遍历树来定位微数据元素,并从中提取你想要的数据。

不幸的是,许多网站仍然不使用这种结构化数据标记——它们只是以人类可读的形式呈现信息,而没有考虑机器解析。在这种情况下,您需要为每个站点自定义数据提取代码,以便它知道您想要的信息在页面上的位置。解析 HTML 然后使用 DOM 通常仍然是很好的第一步,但其余部分必须是特定于站点的(并且可能需要在站点更改其设计时进行更新)。

当然,您也可以尝试想出用于定位相关数据的启发式方法,例如,假设 $ 符号后面的数字可能是一个价格。当然,此类方法也可能偶尔会产生不正确的匹配(例如,将“立即订购并节省 10 美元!”中的“10 美元”误认为是价格)。您可以调整和完善您的启发式方法,以便更聪明地处理这些事情,但无论您做得多好,总会有一些您没有预料到的新的和意想不到的情况。

关于algorithm - 一种从网页中提取产品数据的通用算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26806073/

相关文章:

python - 优化此解决方案以查找公交网络中两个站点之间的最短路径

algorithm - 从一组数字中计算目标数字

24小时游戏的Python实现

java - 使用 Java 从 Adob​​e 的 SiteCatalyst 请求多个元素

r - 如何加快从栅格中提取缓冲区中土地覆盖类型的比例?

arrays - 给定列车时刻表所需的最少站台数量

arrays - 在比较次数最少的数组中找到第二大元素

python - 是否有 Python 库来提取视频元数据,例如 [标题、描述、标题/字幕]?

Java Jsoup : How should I extract the following data point from this html?

c++ - 是否有用于从 HTML 页面中提取数据的库?