你好,游客 登录
背景:
阅读新闻

Python爬虫学习-大数据统计分析(基础)

[日期:2016-05-27] 来源:简书  作者:掷骰子的求 [字体: ]

可视化第三方库与网页编译器

  • Jupyter Notebook 
    安装:终端输入
      pip3 install jupyter
    启动:终端输入
      jupyter notebook
    大数据
  • highchart安装:终端输入

      pip3 install charts

    检测:

    • 终端输入

      jupyter notebook

      在jupyter页面点击new>python3

      在新页面中输入

      import charts

      然后点击cell>run

      若遇到如下情况则需更换charts中的文件:

    • 更换文件

      查找charts所在目录,在jupyter中打开一个新的python文件输入:

      import sys
      print(sys.path)

      在输出的路径中查找site-packages的路径:

      打开finder,点击前往>文件夹

      输入刚才的site-package的路径,点击前往:

      替换charts中的7个文件:替换文件下载( Github )

数据分析流程

  1. 备份数据,防止处理时对数据造成的意外损坏
     mongodump -h dbhost -d dbname -o dbdirectionary
     # -h mongodb所在服务器地址,如本机127.0.0.1
     # -d 需要备份的数据库实例如:gangjiData
     # -o 备份数据存放地址如:/Users/fujingxin/Desktop/backData
  2. 对数据进行预处理(以上节爬取的数据为例)
    • 去除area中多余的部分(‘-’),并将None改为地区不明
    • 统一发布日期的格式
    • 转换价格格式,方便计算
  3. 利用聚合管道pipeline对数据进行高效的查找与筛选 
    当我们要针对爬取的数据进行统计分析时,不同的问题需要的数据形式不同,pipeline相当一个可以提供给我们一层一层筛选所需数据的管道。 
    mongodb提供的pipeline操作如下,其中$所接字符表示进行的具体操作。其中match表示针对给定的信息筛选出数据库中的信息,group表示根据制定信息进行分组等等(具体使用见实例)。
  4. 利用highchair绘制图表
    • 绘制柱状图
    • 绘制折线图
    • 绘制饼图

实战练习1

问题:某段时间内,北京各个城区发帖数量的 top3 类目

已知:

某个时间段,例:2015.12.25~2015.12.27

北京各个城区,例:朝阳

求解:

发帖数量 top3

分析流程

所需数据结构:

原始:

series = [{'name': 'name','data': [100]},{'name': 'name','data': [100]}, ...]

实际上:

{name:类目,data:发帖量}

目标:

{'_id': ['北京二手家电'], 'counts': 175}

构建聚合管道:

构建绘图所需要的数据结构:

绘制图表:

实战练习2

问题:某段时间内各大类目中成色对应的平均价

已知:

某个时间段,例:2015.12.25~2015.12.27

各大类目,例:北京二手手机,北京二手笔记本

单个物品价格,例:某品牌二手电视,价格1000元

求解:

平均价格

分析流程

所需数据结构:

原始:

series = ['data1','data2','data3']

实际上:

[全新对应的价格,9成新对应的价格,8成新对应的价格,7成新对应的价格]

目标:

{'avg_price': 300.0, '_id': '7成新及以下'}

构建聚合管道:

构建绘图所需要的数据结构:

绘制图表:

如何将数据库导出为csv

mongoexport -d database -c collection -o output/path.csv

All source code can be downloaded at GitHub:

https://github.com/jacobkam/WebCrawlerLearning.git




收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款