如何判断网页是否被修改
我有多个网页在两个不同时间点的快照。有什么可靠的方法可以判断哪些网页被修改过吗?
我不能依赖像RSS订阅这样的东西,而且我需要忽略一些小的干扰,比如日期文本。
理想情况下,我希望能找到一个Python的解决方案,但一个简单易懂的算法也很好。
谢谢!
4 个回答
0
类似于编辑距离的东西可能会很有用,如果你设定一个变化的阈值,让它忽略掉你认为合适的噪音。
3
解决方案主要取决于你是想抓取一个特定的网站,还是想创建一个可以适用于任何网站的程序。
你可以通过以下方式查看哪些区域经常变化:
diff <(curl http://stackoverflow.com/questions/) <(sleep 15; curl http://stackoverflow.com/questions/)
如果你只关心一个特定的网站,可以创建一些sed表达式来过滤掉像时间戳这样的内容。你可以反复进行,直到小的字段没有差异为止。
但如果是更一般的问题,那就难多了。我建议你先比较一下页面上的总字数。
8
首先,你需要搞清楚什么是“噪音”,什么不是。你可以使用一个叫做 BeautifulSoup 的HTML解析器来去掉这些噪音,把结果整理得漂亮一些,然后把它作为字符串进行比较。
如果你想要一个自动化的解决方案,可以使用 difflib.SequenceMatcher
来计算网页之间的差异,算出它们的 相似度,然后和一个设定的标准进行比较。