如何确定网页是否已被修改

时间:2009-10-19 10:13:47

标签: python diff webpage snapshot

我有2次拍摄多个网页的快照。确定哪些网页已被修改的可靠方法是什么?

我不能依赖像RSS提要这样的东西,我需要忽略像日期文本这样的小噪音。

理想情况下,我在寻找Python解决方案,但直观的算法也很棒。

谢谢!

4 个答案:

答案 0 :(得分:8)

嗯,首先你要确定什么是噪音,什么不是。您可以使用像BeautifulSoup这样的HTML解析器来消除噪音,打印结果,并将其作为字符串进行比较。

如果您正在寻找自动解决方案,可以使用difflib.SequenceMatcher计算页面之间的差异,计算similarity并将其与阈值进行比较。

答案 1 :(得分:3)

解决方案实际上取决于您是在抓取特定网站,还是正在尝试创建适用于任何网站的程序。

您可以看到哪些区域经常发生变化:

 diff <(curl http://stackoverflow.com/questions/) <(sleep 15; curl http://stackoverflow.com/questions/)

如果您只担心单个网站,可以创建一些sed表达式来过滤掉时间戳等内容。您可以重复,直到小字段没有显示差异。

一般问题要困难得多,我建议比较首页的总字数。

答案 2 :(得分:0)

如果您将更改的阈值设置为忽略适量噪音的距离,那么Levenshtein Distance之类的内容就会派上用场。

答案 3 :(得分:-1)

只需使用MD5或SHA1拍摄文件的快照...如果下次检查时值不同,则会对其进行修改。