【发布时间】:2017-11-15 15:05:55
【问题描述】:
设置
我正在用 scrapy 抓取房屋广告:每个房屋广告我都抓取了几个房屋特征。
刮掉房屋特征可以正常工作。
问题
除了住房特征,我想为每个广告抓取一张图片。
我有以下代码:
class ApartmentSpider(scrapy.Spider):
name = 'apartments'
start_urls = [
'http://www.jaap.nl/huurhuizen/noord+holland/groot-amsterdam/amsterdam'
]
def parse(self, response):
for href in response.xpath(
'//*[@id]/a',
).css("a.property-inner::attr(href)").extract():
yield scrapy.Request(response.urljoin(href),
callback=self.parse_ad) # parse_ad() scrapes housing characteristics
yield scrapy.Request(response.urljoin(href),
callback=self.parse_AdImage) # parse_AdImage() obtains one image per ad
所以,我有两个 yield 命令,但不起作用。也就是说,我得到了特征,但没有得到图像。
我可以评论第一个,这样我就可以得到图像。
我如何解决这个问题,以便我得到两者?提前致谢。
【问题讨论】:
-
两次屈服的意图是什么?似乎最明显的解决方案是同时发送两者。
-
我想要特征和图像。所以两次产量,因为我不知道如何命令它,以便一次产量给我想要的结果。显然,这种“直观”的解决方案失败了。
-
为什么不只产生两个结果的元组?
-
你能告诉我什么是元组吗?
标签: python callback scrapy yield