我认为这是你要寻找的:
def parse(self, response): hxs = HtmlXPathSelector(response) divs = hxs.select('//tr[@]') for div in divs: item = TestBotItem() item['var1'] = div.select('./td[2]/p/span[2]/text()').extract() item['var2'] = div.select('./td[3]/p/span[2]/text()').extract() item['var3'] = div.select('./td[4]/p/text()').extract() yield item在
trs上循环,然后使用相对的XPath表达式(
./td...),并且在每次迭代中都使用
yield指令。
你还可以将每个项目附加到列表中,然后在循环外返回该列表),如下所示(它等同于上面的代码):
def parse(self, response): hxs = HtmlXPathSelector(response) divs = hxs.select('//tr[@]') items = [] for div in divs: item = TestBotItem() item['var1'] = div.select('./td[2]/p/span[2]/text()').extract() item['var2'] = div.select('./td[3]/p/span[2]/text()').extract() item['var3'] = div.select('./td[4]/p/text()').extract() items.append(item) return items


