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去除重复的数据

MongoDB---如何避免插入重复数据(pymongo)

mongodb在插入数据环节避免数据重复的方法(爬虫中的使用update)

如何跳过重复索引上的错误并继续在 MongoDB 中进一步添加文档(pymongo)

Java通过Lambda表达式根据指定字段去除重复数据(集合去重)

Java通过Lambda表达式根据指定字段去除重复数据(集合去重)