您的位置:首页 > 产品设计 > UI/UE

scrapy 在不同的Request之间传递参数的办法

2015-01-14 17:21 309 查看
scrapy 在不同的抓取级别的Request之间传递参数的办法,下面的范例中,parse_item通过meta传递给了parse_details参数item,这样就可以再parse_details抓取完成所有的数据后一次返回

class MySpider(BaseSpider):
name = 'myspider'
start_urls = (
'http://example.com/page1',
'http://example.com/page2',
)

def parse(self, response):
# collect `item_urls`
for item_url in item_urls:
yield Request(url=item_url, callback=self.parse_item)

def parse_item(self, response):
item = MyItem()
# populate `item` fields
yield Request(url=item_details_url, meta={'item': item},
callback=self.parse_details)

def parse_details(self, response):
item = response.meta['item']
# populate more `item` fields
return item
#该代码片段来自于: http://www.sharejs.com/codes/python/6398[/code] 
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: