Mongodb去除重复的数据,pymongo去重
Posted 放脚一搏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongodb去除重复的数据,pymongo去重相关的知识,希望对你有一定的参考价值。
接上一篇的,发现爬斗鱼主播信息存入Mongodb数据库后,发现很多重复的数据,毕竟斗鱼不可能有这么多的主播,所以很多页是有重复的主播房间的。
查了一下怎么去重,发现比较麻烦,与其存入重复的数据后面再去重,还不如在存入数据库的时候就检查,不去存入重复的数据,这样就避免了后期再去做去重工作。于是改动如下:
#-*- coding:utf-8 -*- #_author:John #date:2018/10/25 0:07 #softwave: PyCharm import requests import json from multiprocessing import Pool import pymongo client = 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)])
以上是关于Mongodb去除重复的数据,pymongo去重的主要内容,如果未能解决你的问题,请参考以下文章
mongodb在插入数据环节避免数据重复的方法(爬虫中的使用update)
如何跳过重复索引上的错误并继续在 MongoDB 中进一步添加文档(pymongo)