我正在从网页抓取多个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
答案 0 :(得分:2)
我不太清楚你的意思。您可以选择第一个匹配项:"/path/element[1]"
或许这就是你要找的东西:
"following::elementlookingfor[preceding::starturlelement[@id = 'start_url'][1]]"
这会在elementlookingfor
属性设置为starturlelement
的情况下提取下一个id
之前的所有"start_url"
元素。