Scrapy:仅返回第一个XPATH匹配(每页一个结果)

时间:2013-06-22 15:02:24

标签: python xpath instance scrapy

我正在从网页抓取多个xpath /变量,并且每个xpath中只有一个每页有多个外观(但是,我需要我的结果逐行匹配)。

在移动到下一个start_url之前,有没有办法在每个页面上只提取路径选择器的第一个实例?谢谢!

   def parse(self, response):
    hxs = HtmlXPathSelector(response)
    items = []
    item = FlecheNoireItem()
    item["age"] = hxs.select('//li[contains(@class, "our-age")]/span/text()').re(r'\n\s*(.*)\n') or [' ']
    item["product"] = hxs.select('//div[contains(@id, "price-review-age")]/h1/text()').extract()
    item["price"] = hxs.select('//dd[contains(@class, "ours")]/text()').re(r'\n\s*(.*)\n')
    item["availability"] = hxs.select('//div[contains(@class, "in-stock")]/text()').extract()
    items.append(item)
    return items

1 个答案:

答案 0 :(得分:2)

我不太清楚你的意思。您可以选择第一个匹配项:"/path/element[1]"

或许这就是你要找的东西:

"following::elementlookingfor[preceding::starturlelement[@id = 'start_url'][1]]"

这会在elementlookingfor属性设置为starturlelement的情况下提取下一个id之前的所有"start_url"元素。