经过测试和思考,我找到了适合我的解决方案。想法是仅使用第一个规则,该规则为你提供项目列表,并且非常重要的是,在该规则中添加follow = True。
并且在parse_item()中,你必须产生一个请求而不是一个项目,但是要在加载该项目之后。要求是物品详细网址。并且你必须将加载的项目发送到该请求回调。你可以使用响应来完成工作,并且可以在其中生成项目。
因此parse_item()的完成将如下所示:
itemloaded = l.load_item()# fill url contentsurl = sel.select(item_url_xpath).extract()[0]request = Request(url, callback = lambda r: self.parse_url_contents(r))request.meta['item'] = itemloadedyield request
然后parse_url_contents()将如下所示:
def parse_url_contents(self, response): item = response.request.meta['item'] item['url_contents'] = response.body yield item
如果有人采用另一种(更好)的方法,请告诉我们。



