【问题标题】:Detecting the changing areas in a web page检测网页中的变化区域
【发布时间】:2015-04-07 09:49:03
【问题描述】:

我正在尝试编写一个爬虫来获取原始 html 数据并查找标题、价格、更新日期、照片等字段并将其写入数据库。这是一种经典且古老的数据抓取方式。

我认为我可以通过其他方式完成这项工作。

如果我抓取网站中的所有页面(可能超过 1000 个),并比较它们,我可以找到特定区域。

我的意思是html标签总是一样的。只有特定区域会更改,例如标题、图像等...

那么,确定变化区域的最佳方法是什么?

【问题讨论】:

  • 我觉得,xml diff 不是正确的答案,因为它比较了两个 xml 文件。但我需要一个解决方案来比较 1000 页。

标签: html web-scraping web-crawler


【解决方案1】:

比较一下我能找到的具体区域

确定变化区域的最佳方法是什么?

在您的问题中,您设置了比较页面部分并获取特定区域数据的抓取/抓取方法。这闻起来是正则表达式方法。 不要使用它作为非常低效的方法。而是使用 xpath,对 XML 结构进行操作。

所以,简单点:

  1. 获取html
  2. 使其成为 DOM
  3. 使 DOM 成为有效的 XML
  4. 将 xPath 查询应用于 XML

相信我,xml 库能够很好地处理巨大的结构(包括空闲的 html 标签)并遍历它们。使用 xpath 的经典示例在我的 this post 中。

要确定数据节点路径,您只需使用网络检查器工具(F12 - 在 Chrome 和 IE 中以及 Ctrl+Shift+I 在 FF 中)查看包含有用信息的 html 标记。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-29
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    相关资源
    最近更新 更多