2024-04-20 08:47:16 发布
网友
我正试着抓住班上的div's:“产品”。问题是,有些div的类“product”也有类“product small”。所以当我使用xpath('//div[@class='product']')时,它只捕获一个类的div,而不是多个。我该怎么对付斯皮奇?
xpath('//div[@class='product']')
示例:
<div class='product'>
<div class='product product-small'>
您应该考虑在查询的这一部分使用CSS选择器。
http://doc.scrapy.org/en/latest/topics/selectors.html#when-querying-by-class-consider-using-css
from scrapy import Selector sel = Selector(text='<div class="product product-small">I am a product!</div>') print sel.css('.product').extract()
如果需要,可以链接CSS和XPath选择器,如该页的示例所示。
这也可以用xpath来解决。你只需要使用^{}:
xpath
//div[contains(concat(' ', normalize-space(@class), ' '), ' product ')]
不过,是的,CSS selector选项更紧凑,可读性更强。
CSS selector
您应该考虑在查询的这一部分使用CSS选择器。
http://doc.scrapy.org/en/latest/topics/selectors.html#when-querying-by-class-consider-using-css
如果需要,可以链接CSS和XPath选择器,如该页的示例所示。
这也可以用} :
xpath
来解决。你只需要使用^{不过,是的,
CSS selector
选项更紧凑,可读性更强。相关问题 更多 >
编程相关推荐