使用lxml-3.6.4,XHTMLParser
和HTMLParser
与CDATA标记的行为不同 - XHTMLParser
确实将其包含在文本中:
>>> from lxml import html
>>> content = '<div>regular content<![CDATA[, cdata content]]></div>'
>>> html.fragment_fromstring(content, parser=html.XHTMLParser()).text
'regular content, cdata content'
和HTMLParser
确实删除了它:
>>> html.fragment_fromstring(content, parser=html.HTMLParser()).text
'regular content'
为什么会发生这种情况,如何使用HTMLParser
访问CDATA内容?