6

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

我不能依赖 RSS 提要之类的东西,我需要忽略诸如日期文本之类的小噪音。

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

谢谢!

4

4 回答 4

8

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

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

于 2009-10-19T10:19:21.850 回答
3

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

您可以通过以下方式查看哪些区域经常变化:

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

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

一般问题要困难得多,我建议比较初学者页面上的总字数。

于 2009-10-19T12:34:25.990 回答
0

如果您将更改的阈值设置为忽略了适合您的噪声量的距离,则诸如Levenshtein Distance之类的东西可能会派上用场。

于 2009-10-19T10:18:06.203 回答
-1

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

于 2009-10-19T12:38:28.213 回答