编译环境:python v3.5.0, mac osx 10.11.4
<big>python爬虫基础知识: Python爬虫学习-基础爬取</big>
<big>python爬虫进阶知识: Python爬虫学习-爬取大规模数据</big>
若未进行数据爬取可以使用此数据进行练习Github
可视化第三方库与网页编译器
-
Jupyter Notebook
安装:终端输入
pip3 install jupyter
启动:终端输入
jupyter notebook
-
highchart
安装:终端输入
pip3 install charts
检测:- 终端输入
jupyter notebook
在jupyter页面点击new>python3
import charts
然后点击cell>run
- 终端输入
-
更换文件
查找charts所在目录,在jupyter中打开一个新的python文件输入:
import sys
print(sys.path)
在输出的路径中查找site-packages的路径:
数据分析流程
-
备份数据,防止处理时对数据造成的意外损坏
mongodump -h dbhost -d dbname -o dbdirectionary
# -h mongodb所在服务器地址,如本机127.0.0.1
# -d 需要备份的数据库实例如:gangjiData
# -o 备份数据存放地址如:/Users/fujingxin/Desktop/backData
- 对数据进行预处理(以上节爬取的数据为例)
-
去除area中多余的部分(‘-’),并将None改为地区不明
-
统一发布日期的格式
-
转换价格格式,方便计算
-
利用聚合管道pipeline对数据进行高效的查找与筛选
当我们要针对爬取的数据进行统计分析时,不同的问题需要的数据形式不同,pipeline相当一个可以提供给我们一层一层筛选所需数据的管道。
- 利用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