我正在使用lxml解析具有facebook注释标签的html,如下所示:
我试图选择它以获取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')
标签:lxml,python
来源: https://codeday.me/bug/20191201/2078860.html