首页 新闻 会员 周边 捐助

scrapy 如何把列表页内容和详情页的内容存在一个item?

0
[已解决问题] 解决于 2019-05-14 16:39

举例:

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、内容都存在一起,可是如果分在两个函数去写好像就不能存一起。

会发光的主页 会发光 | 菜鸟二级 | 园豆:258
提问于:2019-04-11 15:35
< >
分享
最佳答案
0

scrapy的meta可以传递参数

会发光 | 菜鸟二级 |园豆:258 | 2019-05-14 16:39
其他回答(2)
0

你可以去 https://v3u.cn/bbs/?forum-7.htm 里面的爬虫第一套题里,有你要的答案

老鼠蟒蛇 | 园豆:8 (初学一级) | 2019-04-11 21:26

requests我知道怎么搞,这是scrapy...

支持(0) 反对(0) 会发光 | 园豆:258 (菜鸟二级) | 2019-04-12 09:12
1

我一通是通过一个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中传递过来的参数
……

奥辰 | 园豆:202 (菜鸟二级) | 2019-05-15 07:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册