码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-10-25 14:07:06      阅读:621      评论:0      收藏:0      [点我收藏+]

标签:host   工作   update   data   god   重复   mat   主播   gap   

接上一篇的,发现爬斗鱼主播信息存入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去重

标签:host   工作   update   data   god   重复   mat   主播   gap   

原文地址:https://www.cnblogs.com/lkd8477604/p/9848958.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!