美文网首页
爬虫Day18-mongodb数据特征的提取

爬虫Day18-mongodb数据特征的提取

作者: 黄yy家的jby | 来源:发表于2018-12-08 17:51 被阅读0次

摘要

  • 去除数据为空或-、/情况
  • 获得累计数
  • 清洗时间格式不一样的数据
  • 得到时间序列

1.导入模板

client.pymongo.MongoClient('localhost',27017)
data=client['goods']  # 找到数据库是goods的库
item_info=data['beijing']   #找到数据表是beijing的表

2. 去除数据为空或者为-情况

from string import punctuation

for i in item_info.find():
    if i['area']:   #如果I['area']不为空
       area = [I for I in i['area'] if I not in punctuation]
       #punctutation是字符串中的所有符号,包括- * 等
    else:
       area = ['不明']

随后得到的area为清洗后的数据,更新数据

item_info.updata({'_id':i['_id']},{'$set':{'area':area}})  

3. 累计值计数

  • 先得到一个无重复的作为index
area_list = []
for i in item_info.find():
    area_list.append(i['area'][0])
area_index = list(set(area_list)
  • 再对index中出现的进行计数
post_times = []
for index in area_index:
    post_time.append(area_list.count(index))          
    #提取出来出现了多少次

4.清洗时间格式不统一

  • 时间格式中有的为2015-01-01有的为2015.01.01
for i in item_info.find():
    frags=i['pub_data'].split('-') 
#split是分割字符串,即存在 - 会把他分割成3个 2015 01 01 。
    if len(frags)==1:  
        data=frags[0]
    else:
        data = '{}.{}.{}'.format(frags[0],frags[1],frags[2])

5. 得到特定的时间序列

  • 得到特定时间间隔中的所有日期
def get_all_dates(date1, date2):
    beg_date = date(int(date1.split('.')[0]),int(date1.split('.')[1]),int(date1.split('.')[2]))
    end_date = date(int(date2.split('.')[0]),int(date2.split('.')[1]),int(date2.split('.')[2]))   
    days = timedelta(days=1)
    while beg_date <= end_date:
        yield(beg_date.strftime('%y.%m.%d'))
        #strftime是格式化时间
        the_date=the_date+days
  • 得到一系列的时间序列
def get_data_within(beg_date, end_date many_lists):
    for  one_list in many_lists:
        time_series = []
        for date in get_all_dates(date1,date2):
        #得到所有日期 dates date表示每个时间点
            time_point = list(item_info.find({'pub_date':date,'area':one_list}))
           #找到在该时点所有满足信息的时间序列a
            time_point_count = len(time_point )
            time_series.append(time_point_count)
            #即完成了其中一个在每个时间点计数的时间序列
        data={
                'name':area,
                'data':time_series,
                'type':'line'
                }
      #不同的one_list 存储在不同的series中,用字典封存
        yield data
  • 得到输出结果
   series = [i for i in get_data_within ('2010.12.12','2011.12.12',['guoguo1','guoguo2','guoguo3'])]

相关文章

  • 爬虫Day18-mongodb数据特征的提取

    摘要 去除数据为空或-、/情况 获得累计数 清洗时间格式不一样的数据 得到时间序列 1.导入模板 2. 去除数据为...

  • python-爬虫

    初识爬虫 网页基础 BeautifuleSoup 解析数据 提取数据 Tag 对象 CSS选择器 爬虫进阶

  • Python爬虫(九)_非结构化数据与结构化数据

    爬虫的一个重要步骤就是页面解析与数据提取。更多内容请参考:Python学习指南 页面解析与数据提取 实际上爬虫一共...

  • 特征工程-特征预处理

    特征工程 -Data PreProcessing(数据预处理)-Feature Extraction(特征提取)-...

  • 网络爬虫入门(二)之爬虫的原理

    在上文中我们说了:爬虫就是请求网站并提取数据的自动化程序。其中请求,提取,自动化是爬虫的关键!下面我们分析爬虫的基...

  • 爬虫的基本原理

    在上文中我们说了:爬虫就是请求网站并提取数据的自动化程序。其中请求,提取,自动化是爬虫的关键!下面我们分析爬虫的基...

  • 爬虫的概念

    爬虫是模拟浏览器发送请求,获取响应 爬虫的流程 url--->发送请求,获取响应--->提取数据---》保存数据 ...

  • 2019-07-10 近期想解决的问题

    爬虫:登陆爬虫,各种视频网站爬虫,数据爬虫 各种网盘自动下载 点各个链接下载 mysql数据储存和提取 自己做一个...

  • 文本特征提取

    在对文本数据进行处理时,很大一部分精力都用在数据集的特征提取上,因此记录一下常用的文本特征提取方法。 文本特征提取...

  • #Python3组数据挖掘实战总结 6、7章#

    数据挖掘实战 特征工程 数据处理 Data vs Feature 列:特征 从原始数据中提取特征供算法和模型使用 ...

网友评论

      本文标题:爬虫Day18-mongodb数据特征的提取

      本文链接:https://www.haomeiwen.com/subject/acgqhqtx.html