举例:
https://www.baidu.com/s?&wd=123
百度的搜索页面相当于列表页,在列表页抓取了标题、时间、URL,接着还要去抓到的URL里抓取内容。
问题来了,怎么把列表页抓到的和在URL详情页抓到的yield到同一个item。
现在的程序是这样的:
def parse(self,response):
'''这里获取列表页的标题、时间、URL'''
'''然后把URL通过Request回调给parse_item'''
def parse(self,response):
'''这里获取URL页面的内容'''
这样的问题是,这两部分好像是分离的,我想把标题、时间、URL、内容都存在一起,可是如果分在两个函数去写好像就不能存一起。
scrapy的meta可以传递参数
我一通是通过一个meta字典来传递参数:
def parse(self, respoonse):
……
meta = {
'title' : title,
'time': time,
'url' : url
}
yield Request(url=url, callback=self.parse_2, meta=meta)
def parse_2(self, response):
meta = response.meta # 这个meta就是你上一个parse中传递过来的参数
……