比较两个HTML文件并返回两者之间不同的HTML标记

时间:2014-12-18 02:57:15

标签: python html difflib

我正在使用python编写一个web监视脚本,它将查看页面的存档版本,将其与当前的在线版本进行比较,并在有任何更改时通知我。我有这个工作的基础知识,但在网页表单中具有动态属性的网站遇到了问题。一般情况下,页面没有更改,但表单中的隐藏属性会触发通知。

diff = difflib.unified_diff(content1, content2)的两个HTML文件上使用python的diflib,我可以得到下面的截断输出。

-<input type='hidden' value='contact-us' name='ufo-form-pagename' id='ufo-form-pagename'/><input type='hidden' value='927eea55b8e87e961314033fce84de4a1418504077' name='ufo-sign' id='ufo-sign'/>

+<input type='hidden' value='contact-us' name='ufo-form-pagename' id='ufo-form-pagename'/><input type='hidden' value='1ccb910cbb9dc0d6f6dd5ed99212df741418800872' name='ufo-sign' id='ufo-sign'/>

我想阅读&#39;通过此输出,并返回不具有相同值的HTML属性,在本例中为value='927eea55b8e87e961314033fce84de4a1418504077'value='1ccb910cbb9dc0d6f6dd5ed99212df741418800872'

我将如何做到这一点?

1 个答案:

答案 0 :(得分:0)

我正在使用python编写一个Web监控脚本,它将查看页面的存档版本,将其与当前的在线版本进行比较,并在有任何更改时通知我。

你不回答你自己的问题吗?如果有差异则文件发生变化。 :)

听起来你想要做的就是忽略某些类别的变化。如果你对正确解析HTML不感兴趣,一个天真的黑客可能是将所有空格转换为换行符然后运行你的差异。在这种情况下,您将看到的唯一区别是value='927eea55...',您可以使用正则表达式并忽略它。

如果你想正确地解析HTML并做一些更聪明的差分,LMGTFY: