我正在使用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'
我将如何做到这一点?
答案 0 :(得分:0)
我正在使用python编写一个Web监控脚本,它将查看页面的存档版本,将其与当前的在线版本进行比较,并在有任何更改时通知我。
你不回答你自己的问题吗?如果有差异则文件发生变化。 :)听起来你想要做的就是忽略某些类别的变化。如果你对正确解析HTML不感兴趣,一个天真的黑客可能是将所有空格转换为换行符然后运行你的差异。在这种情况下,您将看到的唯一区别是value='927eea55...'
,您可以使用正则表达式并忽略它。
如果你想正确地解析HTML并做一些更聪明的差分,LMGTFY: