我有多个网页快照在2倍。确定哪些网页已被修改的可靠方法是什么?
我不能依赖像RSS提要这样的东西,我需要忽略像日期文本这样的小噪音。
理想情况下,我正在寻找一个Python解决方案,但一个直观的算法也将是伟大的。
谢谢!
发布于 2009-10-19 10:19:22
首先,你需要决定什么是噪音,什么不是噪音,你可以使用像BeautifulSoup这样的超文本标记语言解析器来去除噪音,漂亮地打印结果,并将其作为字符串进行比较。
如果您正在寻找自动解决方案,您可以使用difflib.SequenceMatcher来计算页面之间的差异,计算similarity并将其与阈值进行比较。
发布于 2009-10-19 12:34:26
解决方案真的取决于你是在抓取一个特定的网站,还是试图创建一个可以在任何网站上运行的程序。
您可以查看哪些区域经常更改,如下所示:
diff <(curl http://stackoverflow.com/questions/) <(sleep 15; curl http://stackoverflow.com/questions/)如果你只关心一个单独的站点,你可以创建一些sed表达式来过滤掉像时间戳这样的东西。您可以重复此操作,直到小字段没有显示任何差异。
一般的问题要难得多,对于初学者来说,我建议比较一下页面上的总字数。
发布于 2009-10-19 10:18:06
如果您将更改的阈值设置为忽略适量噪声的距离,那么像Levenshtein Distance这样的工具可能会派上用场。
https://stackoverflow.com/questions/1587902
复制相似问题