2015-04-07 91 views
-1

我正在尝试编写一个抓取程序,它可以获取原始html数据并查找标题,价格,更新日期,照片等字段并将其写入数据库。这是抓取数据的经典和旧方法。检测网页中的变化区域

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

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

我的意思是html标签将永远是相同的。只有特定区域会改变,如标题,图像等...

那么,确定更改区域的最佳方法是什么?

+0

使用XML差异? –

+0

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

回答

0

比较它们所有我能找到spesific地区

什么是确定改变区域的最佳方式?

在您的问题中,您设置了比较页面部件和获取特定区域数据的刮擦/爬行方法。这与正则表达式的气味。 不要使用它作为非常有效的方法。相反,使用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标记。