如何判断网页是否被修改

6 投票
4 回答
3001 浏览
提问于 2025-04-15 15:10

我有多个网页在两个不同时间点的快照。有什么可靠的方法可以判断哪些网页被修改过吗?

我不能依赖像RSS订阅这样的东西,而且我需要忽略一些小的干扰,比如日期文本。

理想情况下,我希望能找到一个Python的解决方案,但一个简单易懂的算法也很好。

谢谢!

4 个回答

0

类似于编辑距离的东西可能会很有用,如果你设定一个变化的阈值,让它忽略掉你认为合适的噪音。

3

解决方案主要取决于你是想抓取一个特定的网站,还是想创建一个可以适用于任何网站的程序。

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

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

如果你只关心一个特定的网站,可以创建一些sed表达式来过滤掉像时间戳这样的内容。你可以反复进行,直到小的字段没有差异为止。

但如果是更一般的问题,那就难多了。我建议你先比较一下页面上的总字数。

8

首先,你需要搞清楚什么是“噪音”,什么不是。你可以使用一个叫做 BeautifulSoup 的HTML解析器来去掉这些噪音,把结果整理得漂亮一些,然后把它作为字符串进行比较。

如果你想要一个自动化的解决方案,可以使用 difflib.SequenceMatcher 来计算网页之间的差异,算出它们的 相似度,然后和一个设定的标准进行比较。

撰写回答