在html5lib
教程的第一步中,我看到了相当混乱的行为。
docs告诉:
import html5lib
f = open("mydocument.html")
doc = html5lib.parse(f)
这将以自定义“simpletree”格式返回树。
作为文件,我有一个普通的html文档。但就我而言,这是:
<None>
>>> doc is None
False
我认为不行,但我不知道会发生什么。
如果我在打开的文件上调用read
方法,则返回文件为字符串:
f = open("mydocument.html")
f.read()
# returns string with html
在doc = html5lib.parse(f)
之后,f.read()
返回空字符串,就像文件已被读取的文件一样。
答案 0 :(得分:1)
<None>
并不意味着您的文档未被解析,只是意味着您的文档没有名称。如果你这样做
doc.name = "test"
print(doc)
它应显示<test>
parse
也可以将字符串作为参数,在这种情况下,它会为您加载文件,无需自己打开。
尝试print(doc.toxml())