use*_*351 11 html python xpath scrapy web-scraping
我试图用类来抓住div:'产品'.问题是,一些带有"产品"类的div也有"产品小"这个类.所以当我使用时xpath('//div[@class='product']'),它只捕获一个类而不是多个的div.我怎么能用scrapy做到这一点?
例:
<div class='product'><div class='product product-small'>这也可以用xpath.你只需要使用contains():
//div[contains(concat(' ', normalize-space(@class), ' '), ' product ')]
Run Code Online (Sandbox Code Playgroud)
但是,是的,该CSS selector选项更紧凑,更易读.
您应该考虑为查询的这一部分使用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()
Run Code Online (Sandbox Code Playgroud)
如果需要,可以链接CSS和XPath选择器,如该页面上的示例所示.