Python CSS选择器仅按属性查询,使用LXML
我希望在属性包含Python CSS选择器仅按属性查询,使用LXML,python,css,lxml,Python,Css,Lxml,我希望在属性包含{%的位置获取标记,如以下示例所示: <a href="{% route xy %}></a> <img src="{% static xy %}/> 属性键并不重要 我能想到的最好方法是tag.cssselect[href*={%],但当我想匹配所有属性时,它只匹配hrefs,而不考虑键。您可以使用XPath选择器实现这一点-如果可以接受的话。-,就像这样: //*[@*[contains(.,'{%')]] 上面的XPath选择具有
{%
的位置获取标记,如以下示例所示:
<a href="{% route xy %}></a>
<img src="{% static xy %}/>
属性键并不重要
我能想到的最好方法是
tag.cssselect[href*={%]
,但当我想匹配所有属性时,它只匹配href
s,而不考虑键。您可以使用XPath选择器实现这一点-如果可以接受的话。-,就像这样:
//*[@*[contains(.,'{%')]]
上面的XPath选择具有任何包含“{%”
的属性的所有元素。以下是演示的工作示例:
from lxml.html import etree
html = """<div>
<a href="{% route xy %}"></a>
<img src="{% static xy %}"/>
</div>"""
root = etree.fromstring(html)
result = root.xpath("//*[@*[contains(.,'{%')]]")
for r in result:
print etree.tostring(r)
从lxml.html导入etree
html=”“”
"""
root=etree.fromstring(html)
result=root.xpath(“/*[@*[包含(,'{%')]]”)
对于结果中的r:
打印etree.tostring(r)
输出:
<a href="{% route xy %}"/>
<img src="{% static xy %}"/>
您必须为它们中的每一个进行定义。