scrapy框架爬虫获取下来的数据保存到Django之有两个回调函数两个yield item

it2022-05-05  180

1.问题:存在两个回调函数,有两个yield item 每次yield回来的item里面的值是不一样的,但是两个item所有的字段构成一个完整的记录,如何在pipline里面将异步的数据和字段,完整的保存在表里面?

这个item有这些这么多的值 而这个item仅仅有url、和mid的字段

如何异步调用?并且保存? 首先对item先判断里面是否包含这个字段,不是,则保存,是则进行url字段的保存,但是怎么在表里面查找url字段呢?那么还需要一个唯一标识的字段,mid,那么怎么在另一个回调函数里面保存前面一个回调函数的一个值呢? 用meta,meta字段是用来保存数据,并且在回调函数里面传递的一个字段

有了mid字段那么我们可以在item里面,先在表里面查询相关的mid值的记录,如下: 则用django表的对象的filter函数筛选mid值的记录,并且返回一个列表,可能数据库里面有多个相同记录,则判断,再用循环,去取其中一个记录,然后将,相应的url保存进去,用setattr函数(记录,字段,字段的值),最后写进去为,item.save()


最新回复(0)