Mongodb去除重复的数据,pymongo去重

接上一篇的,发现爬斗鱼主播信息存入Mongodb数据库后,发现很多重复的数据,毕竟斗鱼不可能有这么多的主播,所以很多页是有重复的主播房间的。

查了一下怎么去重,发现比较麻烦,与其存入重复的数据后面再去重,还不如在存入数据库的时候就检查,不去存入重复的数据,这样就避免了后期再去做去重工作。于是改动如下:

#-*- coding:utf-8 -*-#_author:John#date:2018/10/25 0:07#softwave: PyCharmimport requestsimport jsonfrom multiprocessing import Poolimport pymongoclient = pymongo.MongoClient(localhost)db = client[douyu]def single_page_info(page): respones = requests.get(https://www.douyu.com/gapi/rkc/directory/0_0/{}.format(page)) datas = json.loads(respones.text) items = datas[data][rl] for item in items: data = { 标题: item[rn], 主播: item[nn], 人气 : item[ol], } if db[ajax_spider_quchong].update({主播:data[主播]}, {$set: data}, True): print(Save to Mongo, {}.format(data)) else: print(Save to Mong fail, {}.format(data)) print(已经完成第{}页.format(page))if __name__ == __main__: pool = Pool() #多线程抓200页 pool.map(single_page_info, [page for page in range(1, 200)])

 

相关文章