python scrapy怎么处理json api

用scrpay抓取一个段子api,不是太会处理。
api:http://neihanshequ.com/joke/?...
如下格式:
图片描述

我的代码

def parse_item(self,response):

jdict=json.loads(response.body)

jdata = jdict['data']['data']

item = NhdzItem()

list=[]

for i in range(len(jdata)):

list.append(jdata[i])

for t in range(len(list)):

item['text']=list[t]['group']['text']

item['content']=list[t]['group']['content']

item['username']=list[t]['group']['user']['name']

yield item

content,text,username
唉!星期五晚上她还要求开着房,现在就像陌生人一样了,年龄就是问题么?七岁很大么?3月3日交往到现在,已经打破我以前的恋爱经历了,我想好好珍惜都不行么?为什么女人都是在嫌弃奋斗着的男人?唉……现在的我只能多为自己着想!有钱,什么样的女人找不到?(段友们,我说得对还是错?),唉!星期五晚上她还要求开着房,现在就像陌生人一样了,年龄就是问题么?七岁很大么?3月3日交往到现在,已经打破我以前的恋爱经历了,我想好好珍惜都不行么?为什么女人都是在嫌弃奋斗着的男人?唉……现在的我只能多为自己着想!有钱,什么样的女人找不到?(段友们,我说得对还是错?),乌黑的段子

最后结果只能取到20个内容中的最后一条,但是item['text']如果print出来是有20条的。
求助!感谢!

回答:

  1. yield item写到第二层for循环下面
  2. 你这样写就是每次循环把前面的item值覆盖了,应该是:创建一次yield一次
  3. 而且你上面的jdata本来就是一个list,没必要再创建一个列表来遍历保存吧?

以上是 python scrapy怎么处理json api 的全部内容, 来源链接: utcz.com/a/164819.html

回到顶部