このページのコンテンツのみの信頼できる差分を取得しようとしています(構造の変更はまれであるため、無視できます) 。より具体的には、私がピックアップする必要がある唯一の変更は、追加された新しい命令 ID です。
difflibが何を生成するかを把握するために、まず 2 つの同一の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
されます (または、シーケンスが同一であることを示しますが、それでも、HTM L に似たものが'\n'.join
diffed
得られます (ただし、ブラウザーではレンダリングされません))。
実際、2 つの文字を比較する最も単純なケースを考えてみると、次のようになります。
diffed
= d.compare('a', 'a')
diffed.next()
以下を生成します。
' a'
だから私はdifflibから何かを提供できない、または提供しないことを期待しています(そして私はタックを変更する必要があります)、またはそれを誤用していますか? HTML を比較するための実行可能な代替手段は何ですか?