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

Posted knighterrant

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb在插入数据环节避免数据重复的方法(爬虫中的使用update)相关的知识,希望对你有一定的参考价值。

mongo 去重

import pymongo

client = pymongo.MongoClient()
collection=client.t.test

# collection.insert({‘title‘:‘python‘,‘name‘:‘deng‘,‘age‘:23})

data={title:go,name:wang,age:45,url:1}
collection.update({url:1},{$set:data},True)

# 上面的案例,表示如何url重复的话,url不更新,其他字典如果数据不一致就会更新。

 

爬虫案例:

collection.update({‘url‘:data[‘url‘],‘cover_url‘:data[‘cover_url‘]},{‘$set‘:data},True)
# coding=utf8
"""
author:dengjiyun
"""
import pymongo

client=pymongo.MongoClient()
collection = client.dou.douban

import requests
url=https://movie.douban.com/j/chart/top_list

params={
    type:11,
    interval_id:100:90,
    action:‘‘,
    start:60,
    limit:20
}
headers={
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/74.0.3729.157 Safari/537.36
}

res=requests.get(url,params=params,headers=headers).json()

for item in res:
    data={}
    # print(item[‘cover_url‘])
    data[vote_count]=item[vote_count]  # 评论
    data[score]=item[score]       # 得分
    data[title]=item[title]       # 电影名
    data[url]=item[url]         # 详情页url
    data[cover_url]=item[cover_url]   # 封面图片
    data[rank] =item[rank]       # 排名
    data[id] =item[id]         # 电影id
    data[release_date]=item[release_date] # 发布日期

    print(item)
    # 不插入重复数据  collection.update()
    collection.update({url:data[url],cover_url:data[cover_url]},{$set:data},True)
client.close()

 

以上是关于mongodb在插入数据环节避免数据重复的方法(爬虫中的使用update)的主要内容,如果未能解决你的问题,请参考以下文章

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

避免使用mongodb重复文档而不使用唯一索引

大家在爬虫爬数据的时候都是怎么过滤数据库里存在的重复数据

Mongodb插入50M文档而不重复的最佳方法

如何向mongodb中插入不重复的数据

MySQL避免插入重复记录的方法