如何检查给定元素中是否存在某个类

2024-10-01 11:22:40 发布

您现在位置:Python中文网/ 问答频道 /正文

<li class="a">category1</li>
<li>subcatergory1</li>
<li>subcatergory2</li>
<li class="a">category2</li>
<li>subcatergory1</li>
<li>subcatergory2</li>

我正在遍历一个ul,它包含两种li,一种有a类,另一种没有。我想知道是否有一种现有的方法来检查给定的a类是否存在,而不是提取类值并手动比较。在

^{pr2}$

任何想法都将不胜感激。在


Tags: 方法li手动ulclasspr2category2category1
2条回答

您可以在XPath中检查只有一个类的元素:

//li[@class='a']

但这只会寻找完全匹配的结果。所以你可以试试:

^{pr2}$

虽然这也会匹配“noa”或“abig”。所以你的最终答案可能是:

//li[contains(concat(' ', @class, ' '), ' a ')]

在Scrapy中,如果选择器与一些非零内容匹配,那么它的计算结果将为true。所以你应该能写一些东西,比如:

li_tag = response.xpath("//li[contains(concat(' ', @class, ' '), ' a ')]")
if li_tag: 
    print "Yes, I found an 'a' li tag on the page."

主要回答:here

在李.css('.a')应该这样做 或 李.xpath('@id').extract()

如果只需要class=a元素 ul.css文件('li.a')会的。在

相关问题 更多 >