python lxml查找标签

我正在使用lxml解析具有facebook注释标签的html,如下所示:

<fb:comments id="fb_comments"  href="http://example.com" num_posts="5" width="600"></fb:comments>

我试图选择它以获取href值,但是当我执行cssselect(‘fb:comments’)时,出现以下错误:

The pseudo-class Symbol(u'comments', 3) is unknown

有办法吗?

编辑:
编码:

from lxml.html import fromstring
html = '...'
parser = fromstring(html)
parser.cssselect('fb:comments')  #raises the exception 

解决方法:

cssselect()方法使用给定的CSS selector表达式解析文档.在您的情况下,冒号(:)是XML名称空间前缀分隔符(即< namespace:tagname />),它与CSS伪类语法(即tagname:pseudo-class)混淆.

根据lxml manual,您应该在cssselect()中使用namespace-prefix | element语法,以查找带有命名空间前缀(fb)的标记(注释).所以:

from lxml.html import fromstring
html = '...'
parser = fromstring(html)
parser.cssselect('fb|comments')
上一篇:python-lxml etree.parse MemoryAllocation错误


下一篇:iOS编程(双语版)-视图-Autolayout代码初步