gpt4 book ai didi

python - 我如何在scrapy python中使用多个请求并在它们之间传递项目

转载 作者:IT老高 更新时间:2023-10-28 21:32:55 25 4
gpt4 key购买 nike

我有 item 对象,我需要将它传递给许多页面以将数据存储在单个项目中

就像我的商品一样

class DmozItem(Item):
title = Field()
description1 = Field()
description2 = Field()
description3 = Field()

现在这三个描述位于三个单独的页面中。我想做类似的事情

现在这适用于 parseDescription1

def page_parser(self, response):
sites = hxs.select('//div[@class="row"]')
items = []
request = Request("http://www.example.com/lin1.cpp", callback =self.parseDescription1)
request.meta['item'] = item
return request

def parseDescription1(self,response):
item = response.meta['item']
item['desc1'] = "test"
return item

但我想要类似的东西

def page_parser(self, response):
sites = hxs.select('//div[@class="row"]')
items = []
request = Request("http://www.example.com/lin1.cpp", callback =self.parseDescription1)
request.meta['item'] = item

request = Request("http://www.example.com/lin1.cpp", callback =self.parseDescription2)
request.meta['item'] = item

request = Request("http://www.example.com/lin1.cpp", callback =self.parseDescription2)
request.meta['item'] = item

return request

def parseDescription1(self,response):
item = response.meta['item']
item['desc1'] = "test"
return item

def parseDescription2(self,response):
item = response.meta['item']
item['desc2'] = "test2"
return item

def parseDescription3(self,response):
item = response.meta['item']
item['desc3'] = "test3"
return item

最佳答案

没问题。以下是您的代码的正确版本:

def page_parser(self, response):
sites = hxs.select('//div[@class="row"]')
items = []

request = Request("http://www.example.com/lin1.cpp", callback=self.parseDescription1)
request.meta['item'] = item
yield request

request = Request("http://www.example.com/lin1.cpp", callback=self.parseDescription2, meta={'item': item})
yield request

yield Request("http://www.example.com/lin1.cpp", callback=self.parseDescription3, meta={'item': item})

def parseDescription1(self,response):
item = response.meta['item']
item['desc1'] = "test"
return item

def parseDescription2(self,response):
item = response.meta['item']
item['desc2'] = "test2"
return item

def parseDescription3(self,response):
item = response.meta['item']
item['desc3'] = "test3"
return item

关于python - 我如何在scrapy python中使用多个请求并在它们之间传递项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13910357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com