<分区>
前言:这似乎是一个非常初级的问题,可能很愚蠢或表述不当。这就是为什么我不需要一个确定的答案,而只是一个提示,一个点,我可以从中着手。
我正在考虑使用脚本,它可以让我解析不同在线零售商(例如亚马逊)的产品页面。以下信息将从产品页面中提取:
- 产品图片
- 价格
- 可用性(有货/缺货)
该算法的关键在于,一旦实现,它就应该适用于任何零售商、任何产品页面。因此它非常通用。
什么技术可以实现这样的算法?甚至可以编写这样一个通用解析器吗?
<分区>
前言:这似乎是一个非常初级的问题,可能很愚蠢或表述不当。这就是为什么我不需要一个确定的答案,而只是一个提示,一个点,我可以从中着手。
我正在考虑使用脚本,它可以让我解析不同在线零售商(例如亚马逊)的产品页面。以下信息将从产品页面中提取:
该算法的关键在于,一旦实现,它就应该适用于任何零售商、任何产品页面。因此它非常通用。
什么技术可以实现这样的算法?甚至可以编写这样一个通用解析器吗?
最佳答案
如果产品页面上的信息以结构化、机器可读的方式标记,例如使用 schema.org microdata , 然后你可以将页面 HTML 解析成 DOM 树,遍历树来定位微数据元素,并从中提取你想要的数据。
不幸的是,许多网站仍然不使用这种结构化数据标记——它们只是以人类可读的形式呈现信息,而没有考虑机器解析。在这种情况下,您需要为每个站点自定义数据提取代码,以便它知道您想要的信息在页面上的位置。解析 HTML 然后使用 DOM 通常仍然是很好的第一步,但其余部分必须是特定于站点的(并且可能需要在站点更改其设计时进行更新)。
当然,您也可以尝试想出用于定位相关数据的启发式方法,例如,假设 $
符号后面的数字可能是一个价格。当然,此类方法也可能偶尔会产生不正确的匹配(例如,将“立即订购并节省 10 美元!”中的“10 美元”误认为是价格)。您可以调整和完善您的启发式方法,以便更聪明地处理这些事情,但无论您做得多好,总会有一些您没有预料到的新的和意想不到的情况。
关于algorithm - 一种从网页中提取产品数据的通用算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26806073/