Html 使用difflib SequenceMatcher并调用get_操作码()未提供正确/预期的输出。其显示为插入/删除,未经修改

Html 使用difflib SequenceMatcher并调用get_操作码()未提供正确/预期的输出。其显示为插入/删除,未经修改,html,python-3.5,Html,Python 3.5,我有两个html文档,我正在使用difflib.SequenceMatcher和get_opcodes()查找它们的差异 但在某些情况下,返回的操作码与预期不符,导致错误的差异 例如: 修改锚定标记href属性后,差异输出无法正确显示,只有旧链接有效,而不是新链接。在某些情况下,op_代码显示,如果修改了某些html内容,那么即使未修改,也会删除并插入一些内容 更清楚的是,为了将旧的html内容更改为新的html内容,difflib的SequenceMatcher返回操作单元代码,这样一些内容显

我有两个html文档,我正在使用difflib.SequenceMatcher和get_opcodes()查找它们的差异

但在某些情况下,返回的操作码与预期不符,导致错误的差异

例如:

修改锚定标记href属性后,差异输出无法正确显示,只有旧链接有效,而不是新链接。在某些情况下,op_代码显示,如果修改了某些html内容,那么即使未修改,也会删除并插入一些内容

更清楚的是,为了将旧的html内容更改为新的html内容,difflib的SequenceMatcher返回操作单元代码,这样一些内容显示为已删除并再次添加,即使它们未被修改

注意:

我将新旧部分中的html内容拆分为列表,并将其作为列表提供给Sequencematcher

这里a是作为列表的旧html内容,b是作为列表的新html内容

s=SequenceMatcher(λx:x在“\t”,a,b,autojunk=False)

提取op_代码并使用HTMLDiffer获取新旧内容

对于s.get_操作码()中的标签i1、i2、j1、j2:

但这适用于html文件中的某些更改

在其他情况下,其显示不准确。例如,如果修改了标题名称,并在其上方插入了任何内容,则会出现一些错误的差异显示,即未修改的文本显示为已删除并再次插入

这是错误还是限制

请让我知道有什么解决办法