【发布时间】:2016-05-22 20:30:05
【问题描述】:
我希望获得this 页面的仅内容(结构变化很少,因此可以忽略)的可靠差异。更具体地说,我需要进行的唯一更改是添加了一个新的指令 ID:
为了了解 difflib 会产生什么,我首先对两个 相同 HTML 内容进行比较,希望什么也得不到:
url = 'https://secure.ssa.gov/apps10/reference.nsf/instructiontypecode!openview&restricttocategory=POMT'
response = urllib.urlopen(url
content = response.read()
import difflib
d = difflib.Differ()
diffed = d.compare(content, content)
由于 difflib 模仿 UNIX diff 实用程序,我希望 diffed 不包含任何内容(或给出一些序列相同的迹象,但如果我 '\n'.join diffed ,我得到something resembling HTML,(虽然它不在浏览器中呈现)
确实,如果我采用区分两个字符的最简单情况:
diffed = d.compare('a', 'a')
diffed.next() 产生以下内容:
' a'
所以我要么期望 difflib 提供一些它不能或不会提供的东西(我应该改变策略),还是我在滥用它?区分 HTML 的可行替代方案是什么?
【问题讨论】:
标签: python html python-2.7 string-comparison difflib