1. 程式人生 > >Mongodb去除重復的數據,pymongo去重

Mongodb去除重復的數據,pymongo去重

ESS mongo pda 可能 ajax info one __main__ mat

接上一篇的,發現爬鬥魚主播信息存入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去重