抓取新浪微博数据存入MongoDB,避免重复插入微博数据的方法

def getMyDatalist():
#id这个key
key = str(u'id').decode('utf-8')
#存储旧数据的id列表
old_ids = []
#存储新微博的列表
extr_wb = []
#从MongoDB上获取的数据
old_datalist = weibodata.find()
for old in old_datalist:
old_ids.append(old[key])

#从微博上抓取新数据
data = client.statuses.home_timeline.get()
new_datalist = data.statuses
for new in new_datalist:
if new[key] not in old_ids:
extr_wb.append(new)
weibodata.insert(extr_wb,save=True)

思路:

1.先从MongoDB中获取旧的微博数据,将所有的微博数据的id存入一个列表old_ids

2.从微博抓取新数据,遍历判断微博id是否是old_ids没有的,那么将微博加入一个存放新插入数据的列表extr_wb

3.执行批量插入到MongoDB

原文地址:https://www.cnblogs.com/wuxinqiu/p/3835274.html