Python scrapy:当多个div完全相同时,只提取一个div

Python scrapy:当多个div完全相同时,只提取一个div,python,html,scrapy,extract,Python,Html,Scrapy,Extract,我是新来的刮痧的世界。。。有人能帮我吗 你知道如何抓取这个代码中的第一个元素列表(即价格“Prix”)吗?事实上,我只想要一份价格清单,上面有产品的价格和数量,但它给了我一切(价格、品牌——我删除了这部分、颜色——我也删除了这部分、星星等等) 但我不认为它是这样工作的 非常感谢您可以在xpath表达式中使用索引: response.xpath('(//div[@class="jsFacetTitle mgFTitle"])[1]/span[1]/text()').extract() ['Prix

我是新来的刮痧的世界。。。有人能帮我吗

你知道如何抓取这个代码中的第一个元素列表(即价格“Prix”)吗?事实上,我只想要一份价格清单,上面有产品的价格和数量,但它给了我一切(价格、品牌——我删除了这部分、颜色——我也删除了这部分、星星等等)

但我不认为它是这样工作的


非常感谢

您可以在xpath表达式中使用索引:

response.xpath('(//div[@class="jsFacetTitle mgFTitle"])[1]/span[1]/text()').extract()
['Prix']

尝试使用XPath而不是html序列(我编辑帖子;)我尝试了很多东西,但没有一件是有效的??这么简单,我没有想到。。。非常感谢。你知道。re(r'')是如何工作的吗?我不知道r“”是什么意思。…@P.Postrique
r
python中字符串的前缀表示原始字符串文字,请参阅相关问题:
        if response.xpath('//div[@class="jsFacetListing mgFacetListing mgFOpen"]/div[@class="mgFAllList"]/ul/li/label/input[@name="FacetForm.SelectedFacets[0]"]'):
          nbproducts = response.xpath('/span/text()').re(r'\u20ac \s*(.*)')
          avgcost = response.xpath('../span/text()').re(r'\s*(.*)')
response.xpath('(//div[@class="jsFacetTitle mgFTitle"])[1]/span[1]/text()').extract()
['Prix']