我试图解析HTML页面并获取具有特定属性的项目。我正在使用lxml.cssselect
来完成这项工作。
我似乎无法使用属性选择器。以下选择器:p[itemprop="articleBody"]
在this page上不返回任何内容。使用Firefox或Chrome中的相同选择器。
当我尝试没有属性的选择器时,它们可以正常工作。
我使用html
翻译器创建了CSSSelector。
lxml.cssselect不支持这种选择器吗?我无法在文档中找到任何对它的引用。
答案 0 :(得分:1)
我没有lxml.cssselect
的专业知识(我快速去了,甚至无法设置元素树,因此无法复制您的确切问题)。但是,我已成功使用可能对您有用的等效lxml
方法。
from lxml import html
import requests
url = 'http://abcnews.go.com/US/wireStory/man-jail-writing-racist-graffiti-refugees-homes-33488053'
page = requests.get(url)
tree = html.fromstring(page.text)
p_elements = tree.cssselect('p[itemprop="articleBody"]')
print(p_elements)
<强>输出:强>
[<Element p at 0xa503ae8>,
<Element p at 0xa503db8>,
<Element p at 0xa503bd8>,
<Element p at 0xa54b1d8>,
<Element p at 0xa54b0e8>,
<Element p at 0xa54b138>,
<Element p at 0xa54b188>]
通常,在使用lxml
时,我发现通过XPath选择元素比使用CSS选择器更灵活。