- 无标签
如何在大数据时代获得实时的数据信息,分析挖掘、提取出有价值的信息,并以直观清晰的图形表示出关键的数量关系和概念,是一个值得研究的问题。本书通过数据抓取篇(如何获得数据信息)、数据分析篇(分析挖掘,提取出有价值的信息)、数据可视化篇(以直观清晰的图形表示出关键的数量关系和概念)详细描述数据抓取、分析、展示的整个流程,每一篇自成一体,可以单独学习掌握。
python提供了json库,专门用于json格式内容的解析处理。
json的使用比较简单,常用的方法有load、loads、dump和dumps,我们这里结合mongodb,可以存储大量的json数据。
查询北京大学地图的url,它返回的是json格式。我们可以通过该例子说明问题,网址如下:
http://ditu.amap.com/detail/get/detail?id=B000A816R6,代码如下:
1
2
3
4
5
6
7
8
9
|
import requests
import json
res = requests.get(url).text
json_dict=json.loads(res)
print(type(json_dict))
print(json_dict.keys())
print(json_dict['data'])
print('lng:'+json_dict['data']['base']['x']+','+'lat:'+json_dict['data']['base']['y'])
|
输出部分结果如下所示:
1
2
3
4
|
<class 'dict'>
dict_keys(['status', 'data'])
{'src_info': [], ... 'author_id': '', 'review_weburl': '', 'recommend': '', 'quality_flag': 48, 'high_quality': 0, 'aos_tag_score': 33.599999999999994, 'gold_num': 5, 'gold_type': '22', ... 'intro': '北京大学创于1898年,初名京师大学堂,是第一所国立综合性大学,也是当时中国的最高教育行政机关.辛亥革命后,于1912年改为现名. 作为新文化运动的中心和“五四”运动的策源地,作为中国最早传播马克思主义和民主科学思想的发祥地,作为中国共产党最早的活动基地,北京大学为民族的振兴和解放、国家的建设和发展、社会的文明和进步做出了不可代替...}
lng:116.31088,lat:39.99281
|
既然我们已经把数据取下来了,那么我们现在就可以用mongodb做存储了
我们需要安装mongodb,在之前的文章中我们已经介绍过了。还要在python中安装pymongodb模块(它搭起了python和mongodb的桥梁)
1
2
3
|
pip3 install pymongo
#如果你安装的是anaconda,那么你还可以用以下命令安装
conda install pymongo
|
安装完成之后,我们就可以将json的处理和存储给结合起来了,环境启动如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
|
net start mongodb
mongo #这里我们已经把mongo的path加入了系统环境PATH中,所以可以不用完整路径信息
#手工建立数据库
> use bj_map #创建名为bj_map的数据库,并转到该数据库下操作
> db
bj_map
> db.createCollection("pos_info") #在bj_map数据库下创建pos_info表
{ "ok" : 1 } #表示该表创建成功
#代码建立数据库
#由于没有相对应的数据库和集合,mongodb会自动创建
|
mongodb的端口号为27017(固定端口号更为方便,我们在配置mongodb服务的时候固定的端口号)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import requests
import json
import pymongo
#数据库信息配置
ip='127.0.0.1'
port=27017
db_name ='bj_map'
collection_name ='pos_info'
#北京大学
#清华大学
urls=[url_1,url_2]
#数据库连接
mongo_conn=pymongo.MongoClient(ip,port)
db=mongo_conn[db_name]
collection=db[collection_name]
for url in urls:
try:
print(url)
res = requests.get(url).text
json_dict=json.loads(res)
collection.save(json_dict)
except Exception as e:
print(e)
|
输出结果:
1
2
|
http://ditu.amap.com/detail/get/detail?id=B000A816R6
http://ditu.amap.com/detail/get/detail?id=B000A7BD6C
|
我们可以在mongodb数据库中去查看
1
2
3
4
5
6
|
mongo
> db['pos_info'].count()
2
>db['pos_info'].find()
{... "motto" : "爱国 进步 科学 民主", "intro" : "北京大学创于1898年,初名京师大学堂,是...}
{... "motto" : "自强不息 厚德载物", "intro" : "清华大学(Tsinghua University),简称清华...}
|
或者说我们打开pycharm,用pycharm的mongo插件查看。点击界面右侧栏中的Mongo Explorer→选择第三个图标“mongo settings”→点击右侧绿色的“+”→label和user database都填写“bj_map”,server_url默认就好,用test connection按钮测试。至此,我们就可以查看了。
潘庆和,2011年7月毕业于哈尔滨工业大学计算机科学与技术学院,计算机应用技术专业,获得工学博士学位。2011年8月至今,哈尔滨商业大学计算机与信息工程学院,计算机科学与技术专业教师,讲师,主教课程:本科专业课《操作系统》,《专业英语》,研究生《形式语言与自动机》,《大数据技术基础》。2014年获得哈尔滨商业大学优秀教师称号。
1、链接失效请联系客服人员。
2、购买后如果链接失效可联系客服人员完善资源或进行退款办理。
3、资源均来源于网友分享及网络公开发表文件,所有资料仅供学习交流。
4、所收取费用仅用来维系网站运营,性质为用户友情赞助,并非售卖文件费用。
5、如侵犯您的权益,请联系客服人员,我们将会在第一时间进行处理。