Python 如何检查给定元素中是否存在特定类

Python 如何检查给定元素中是否存在特定类,python,scrapy,Python,Scrapy,任何想法都将不胜感激。li.css('.a')应该可以 或 li.xpath('@id').extract() 如果只需要class=a元素,则 ul.css('li.a')就可以了。li.css('li.a')应该可以 或 li.xpath('@id').extract() 如果只需要class=a元素,则 ul.css('li.a')就可以了。您可以在XPath中检查只有一个类的元素: for li in ul if (li has class:a) .... 但这

任何想法都将不胜感激。

li.css('.a')应该可以 或 li.xpath('@id').extract()

如果只需要class=a元素,则 ul.css('li.a')就可以了。

li.css('li.a')应该可以 或 li.xpath('@id').extract()

如果只需要class=a元素,则
ul.css('li.a')就可以了。

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

for li in ul
    if (li has class:a)
        ....
但这只是寻找精确的匹配。所以你可以试试:

//li[@class='a']
虽然这也将匹配“noa”或“abig”。因此,您的最终答案可能是:

//li[contains(@class, 'a')]
在Scrapy中,如果选择器匹配某些非零内容,则其计算结果将为true。因此,您应该能够编写如下内容:

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

主要答案:

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

for li in ul
    if (li has class:a)
        ....
但这只是寻找精确的匹配。所以你可以试试:

//li[@class='a']
虽然这也将匹配“noa”或“abig”。因此,您的最终答案可能是:

//li[contains(@class, 'a')]
在Scrapy中,如果选择器匹配某些非零内容,则其计算结果将为true。因此,您应该能够编写如下内容:

//li[contains(concat(' ', @class, ' '), ' a ')]
主要答覆: