精华内容
下载资源
问答
  • Python爬虫实例教程讲师日月光华爬虫去重答疑群945189407爬虫去重的分类一基于URL的去重二基于内容的去重爬虫去重方案一使用set数据结构去重内存去重二使用Redis缓存数据库去重三位去重如布隆过滤爬虫去重的实现一...
  • python进行mongodb-gridfs去重

    千次阅读 2018-01-27 23:03:42
    由于最开始抓取数据时,出于疏忽,将图片数据存入mongodb时查询图片是否已存在这部分代码出错,导致mongodb中存在大量重复的图片,因此需要对数据库进行去重操作。 而我采用了mongodb提供的GridFS功能来管理图片,...

    说明

    由于最开始抓取数据时,出于疏忽,将图片数据存入mongodb时查询图片是否已存在这部分代码出错,导致mongodb中存在大量重复的图片,因此需要对数据库进行去重操作。
    而我采用了mongodb提供的GridFS功能来管理图片,与一般的文档去重有所区别,因此经过尝试和摸索后,得到如下解决方案,效率较低,但能有效解决问题。

    代码

    #-*-coding:utf-8-*-
    from pymongo import MongoClient
    import json
    from gridfs import *
    from datetime import datetime
    
    def delete_repeat_data(ip):
        beginTime = datetime.now()
        print beginTime
        client = MongoClient(ip, 27017)   
        oldDB = client.olddb
        oldFS = GridFS(oldDB, collection="images")
        collection = oldDB.images.files
    
        newDB = client.newdb 
        newFS = GridFS(newDB, collection="images")
        num = 0
        for photo_id in collection.distinct('photo_id'):# 使用distinct方法,获取每一个独特的元素列表,不能直接对fs进行类似操作,会报错
            flag = True
            for dic in oldFS.find({"photo_id":photo_id}): # 此处字段根据需求设置。fs.find返回值为GridOutCursor,需要遍历获取其中数据,由于同一id对应的数据相同,因此设置flag进行标记,只保存一条记录即可。
                if not flag:
                    break
                # 得到图片属性数据
                photoDic = {"photo_title":dic.photo_title, "owner_id":dic.owner_id, "owner_name":dic.owner_name, "photo_id":photo_id, "width":dic.width,
                    "longitude":dic.longitude, "latitude":dic.latitude, "tags":dic.tags, "dateupload":dic.dateupload, "photo_url":dic.photo_url, 
                    "height":dic.height,  "datetaken":dic.datetaken}
                if newFS.find_one({"photo_id":photo_id}): # 如果此图片在新数据库中已存在,则不保存。一般来说,不需要这段代码,有点多此一举
                    break
                newFS.put(dic.read(), **photoDic) # 将图片数据存入新数据库中
                #print photo_id
                num += 1
                flag =False
            if num%1000==0:
                print num, datetime.now(), datetime.now()-beginTime
    
    if __name__ == '__main__':
        delete_repeat_data('localhost')
    

    欢迎留言交流,以上。

    展开全文
  • python按照list中字典的某key去重

    千次阅读 多人点赞 2020-10-09 21:38:40
    python按照list中字典的某key去重一、需求说明二、我的解决方案写在最后 一、需求说明 当我们写爬虫的时候,经常会遇到json格式的数据,它通常是如下结构: data = [{'name':'小K','score':100}, {'name':'小J','...

    python按照list中字典的某key去重

    一、需求说明

    当我们写爬虫的时候,经常会遇到json格式的数据,它通常是如下结构:

    data = [{'name':'小K','score':100},
            {'name':'小J','score':98},
            {'name':'小Q','score':95},
            {'name':'小K','score':100}]
    

    很显然名字为小K的数据重复了,我们需要进行去重。通常对于list的去重,我们可以用set()函数,即:

    data = list(set(data))
    

    然而,运行之后你会发现它报错了:
    在这里插入图片描述
    list里的数据不能是dict类型,那么该怎么办呢?

    二、我的解决方案

    定义一个去重的函数即可,根据里面的某个key,对数据进行筛选去重:

    def DelRepeat(data,key):
        new_data = [] # 用于存储去重后的list
        values = []   # 用于存储当前已有的值
        for d in data:
            if d[key] not in values:
                new_data.append(d)
                values.append(d[key])
        return new_data
    

    参数data为需要去重的list,key为去重的健(即按照哪个key来去重),去重后结果为:

    [{'name': '小K', 'score': 100},
     {'name': '小J', 'score': 98},
     {'name': '小Q', 'score': 95}]
    

    成功去重!

    写在最后

    最后,感谢各位大大的耐心阅读~

    创作不易,大侠请留步… 动起可爱的双手,来个赞再走呗 (๑◕ܫ←๑)

    展开全文
  • 二维数组的去重,能和一维的方法类似吗?import numpyc=np.array(((1,2),(3,4),(5,6),(7,8),(7,8),(3,4),(1,2)))print('二...原因:unique()只是将二位数据转化为一维,然后再去重下面来点干货!#方案1:转化为虚数x=c[:,0...
    二维数组的去重,能和一维的方法类似吗?
    import numpy
    c=np.array(((1,2),(3,4),(5,6),(7,8),(7,8),(3,4),(1,2)))
    print('二维数组:\n',c)
    print('去重后:',np.unique(c))
    然而并不能达到预期,好伤心....
    原因:unique()只是将二位数据转化为一维,然后再去重

    下面来点干货!
    #方案1:转化为虚数
    x=c[:,0]+c[:,1]*1j
    print('转化为虚数:',x)
    print('虚数去重后:',np.unique(x))
    print(np.unique(x,return_index=True))#return_index:输出的元素索引值
    idx=np.unique(x,return_index=True)[1]
    print('二维数组去重:\n',c[idx])
    #方案2:利用set
    print('去重方案2:\n',np.array(list(set([tuple(t) for t in c]))))

    转载于:https://www.cnblogs.com/Michelle-Yang/p/6730818.html

    展开全文
  • 使用python下载哨兵1数据,对于下载失败的文件,会在最后生成一组日志,我需要根据这个日志信息来对比源文件,把失败的数据,重新生成需要下载的数据csv。 解决方案: 当在下载报错的时候,就把这个文件名添加在...

    背景:

    使用python下载哨兵1数据,对于下载失败的文件,会在最后生成一组日志,我需要根据这个日志信息来对比源文件,把失败的数据,重新生成需要下载的数据csv。

    解决方案:

    当在下载报错的时候,就把这个文件名添加在指定的一个csv文件里面,这样程序跑完或者没跑完,我就知道失败的都有那些了。

    脚本如下:

    import csv
    
    dataSet = []
    
    
    def getFailedList(fileName):
        # 传入的字符串追加到csv中
        if [fileName] not in dataSet:
            print('不存在当前元素,可以添加')
            with open('failList.csv', 'a', encoding="utf-8") as f:
                writer = csv.writer(f)
                writer.writerow([fileName])
        else:
            print('已有元素,不添加')
    
    
    def getfails(csv_name):
        with open(csv_name, 'r', encoding="utf-8") as f:
            csv_reader = csv.reader(f)
            rows = [row for row in csv_reader]
            return rows
    
    
    try:
        dataSet = getfails('failList.csv')
        getFailedList('2')
    except IOError:
        getFailedList('22')

    解释说明:

    1.引入csv库来处理csv文件,先执行getfails函数,读取保存失败文件的csv,如果不存在,会走except,直接执行生成文件并且添加的函数 getFailedList,这样可以保证这个保存失败数据的csv是存在的。

    2. 定义dataSet来记录当前失败的数据list, 然后在每次插入数据之前比对一下,如果不存在就插入,如果存在就跳过。

    展开全文
  • 数据去重 数据导出 将数据写入 MySQL 数据库 下图所示文件是本文的数据源:   我们的设想是:编写一个小程序,扔在这个文件夹里,双击后就可以自动读取每个 txt 文档中的数据,并写入数据库。 代码如下: ...
  • 应用场景:工作中经常遇到大量的数据需要整合、去重、按照特定格式导出等情况。如果用 Excel 操作,不仅费时费力,还不准确,有么有更高效的解决方案呢? 本文以17个 txt 文本,3万多条... 数据去重 数据导出 将数...
  • 在工作中经常遇到大量的数据需要整合、去重、按照特定格式导出等情况。这篇文章主要介绍了使用 Python 处理3万多条数据只要几秒钟的相关知识,需要的朋友可以参考下 应用场景:工作中经常遇到大量的数据需要整合、...
  • 应用场景:工作中经常遇到大量的数据需要整合、去重、按照特定格式导出等情况。如果用 Excel 操作,不仅费时费力,还不准确,有么有更高效的解决方案呢? 本文以17个 txt 文本,3万多条数据为例,使用 Python 连接 ...
  • 最近有一大堆质谱数据,但好多蛋白都是已经研究过得,为了寻找和bait蛋白相关,但又特异的假定蛋白,决定写个Python程序过滤掉不需要的信息,保留想要的信息。 方案: 1,找出所有质谱数据中特异蛋白中的假定蛋白...
  • Python set set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。 注:set中无index 今天读取两个文件合并,并去重。文件格式如下: 下面程序在29行报错’set’ ...
  • 第23章: Python数据结构与控制流语句 任务280: 程序基本组成及输入和输出 任务281: 基本数据类型间转换的常用方法 任务282: Python的数据结构-列表 任务283: 集合 任务284: 元组 任务285: 字典 任务286: ...
  • 成交数据应该去重,可以做成每天增量爬取。 需要做成每天爬取一次,定时执行 参考文章技术方案 使用Scrapy框架,实现spider部分和pipeline部分。 拦截手机版网络请求,获取Cookie信息,模拟手机请求拿到未隐藏的成交...
  • 「Mongo」聚合操作与清洗重复数据

    千次阅读 2018-06-10 19:26:06
    使用Mongo聚合操作来进行重复的数据项清洗,并使用...在爬虫中断续爬时会出现少量数据重复的问题,我将数据去重放在了数据清洗环节,清洗的过程中顺带将重复的数据删除。 Mongo老版本的解决方案是建立单一索引,Mo...
  • 随着大数据时代到来,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,本书从基本的爬虫...难点详析,对js加密的分析、反爬虫措施的突破、去重方案的设计、分布式爬虫的开发进行了细致的讲解。
  • 47_ElasticSearch cardinality去重算法以及每月销售品牌数量统计 48_ElasticSearch ardinality算法之优化内存开销以及HLL算法 49_ElasticSearch percentiles百分比算法以及网站访问时延统计 50_ElasticSearch ...
  • 数据集划分:数据去重并分成三个部分。训练集:243万;验证集:7.7万;测试集,数万,不提供下载。 可能的用途: 可以做为【通用中文语料】,训练【词向量】或做为【预训练】的语料; 也可以用于训练【标题生成】...
  • 如果你想通过命令行输入user_id,可以使用参数u,可以输入一个或多个user_id,每个user_id以英文逗号分开,如果这些user_id中有重复的user_id,程序会自动去重。命令行如下: $ python3 -m weibo_spider --u=...
  • CVE-2020-7471-django1.11-1.11.282.2-2.2.103.0-3.0.3 StringAgg(delimiter)使用了不安全的数据会造成SQL注入漏洞环境和POC CVE-2019-17564 : Apache Dubbo反序列化漏洞 CVE-2019-2725(CNVD-C-2019-48814、WebLogic...
  • 转录层,把从循环层获取的标签分布通过去重整合等操作转换成最终的识别结果; 1. 可视化模型配置 为每个图像分类任务创建一个独立的项目,每个项目拥有完全独立的管理空间,方便多任务切换和管理。全程无需修改一行...
  • 源代码合集1159.rar

    2012-06-14 12:20:28
    2012-06-14 09:25 8,614,825 Learning Python (中).pdf 2012-06-14 09:28 5,642,967 Linux 内核完全注释.pdf 2012-06-14 10:54 10,577,856 Linux.黑客大曝光:Linux安全机密与解决方案.pdf 2012-06-14 10:58 21,518,...
  • 编程数据结构python6学习教程 |____3.深入了解软件测试基础视频 |____2.Linux和数据库SQL |____1.软件测试前置基础知识 |____26 互联网全终端项目-好客租房项目 |____资料 |____4-4 服务的具体实现以及...

空空如也

空空如也

1 2
收藏数 23
精华内容 9
关键字:

python数据去重方案

python 订阅