上篇关于爬虫的文章,我们讲解了如何运用Python的requests及BeautifuiSoup模块来完成静态网页的爬取,总结过程,网页爬虫本质就两步:
1、设置请求参数(url,headers,cookies,post或get验证等)访问目标站点的服务器;
2、解析服务器返回的文档,提取需要的信息。
而API的工作机制与爬虫的两步类似,但也有些许不同:
1、API一般只需要设置url即可,且请求方式一般为“get”方式
2、API服务器返回的通常是json或xml格式的数据,解析更简单
也许到这你就明白了,API简直就是开放的“爬虫”呀,可以告诉你,基本就是这个意思。好的,言归正传,本篇我们就演示如何运用Python结合百度地图API来批量获取POI(兴趣点)。
所谓POI(兴趣点),指的是人们感兴趣,比较常去的地方,比如银行、医院、学校等,利用城市的POI的空间属性可以做非常多的事情,至于什么事情呢,此处省略10000字。。。
说干就干,Let's go!
(1)创建百度地图应用
访问百度地图API需要一个信令(AK),打开百度地图开放平台,点击右上角“API控制台”,即进入了百度地图的开发界面。
选择“创建应用”-应用类型勾选“浏览器端”–勾选所用到的服务(一般全选即可),此时就创建好了应用账号,得到“AK”
(2)Place API 及Web服务API
打开百度地图API的POI模块,网址:http://lbsyun.baidu.com/index.php"background-color: #ccffcc">1. 区域检索POI服务提供三种区域检索方法:
a.城市内检索(对应JavaScriptAPI的Search方法)
b.矩形检索(对应JavaScript API的SearchInBound方法)
c.圆形区域检索(对应JavaScript的SearchNearBy方法)。
2. POI详情服务提供查询单个POI的详情信息,如好评。
并给出了请求的一个示例,设置检索城市为北京,检索关键字为“饭店”,检索后返回10条数据:
http://api.map.baidu.com/place/v2/search"" src="/UploadFiles/2021-04-08/20180110101646.jpg">上图是将返回的json数据解析之后的结果,可以看到,服务器返回了10条北京市的饭店的信息,包括饭店名称、经纬度、地址、联系电话等。
具体的参数设置,自行去该网页去看吧,这里就不再赘述,这里我们主要利用“矩形检索”的方式来获取整个城市的特定POI信息,其url格式如下:
http://api.map.baidu.com/place/v2/search"" src="/UploadFiles/2021-04-08/20180110101657.jpg">通过实验可以发现,一个矩阵区域最多返回400(20*20)个POI点,即page_size = 20 & page_total = 20,虽然官方文档里说一个区域返回760+都不成问题的,但是测试了一下,发现并没有这么多,最多400个。
显然,整个城市不可能仅400个特定描述的POI点,所以我们需要对整个城市进行分片操作,然后每片进行访问,通过Python的循环实现。
(3)获取城市特定POI点集合
比如:我们想获取北京市四环以内所有饭店的信息,即可通过上述步骤借助Python快速实现,废话不多说,直接上代码:
# -*- coding: utf-8 -*- # Python 2.7 # 提取城市的POI点信息并将其保存至MongoDB数据库 import urllib2 import json from pymongo import MongoClient left_bottom = [116.282387,39.835862]; # 设置区域左下角坐标(百度坐标系) right_top = [116.497405,39.996569]; # 设置区域右上角坐标(百度坐标系) part_n = 2; # 设置区域网格(2*2) client = MongoClient('localhost',27001) db = client.transdata db.authenticate("user", "password") col = db.taxi; # 连接集合 url0 = 'http://api.map.baidu.com/place/v2/search"" src="/UploadFiles/2021-04-08/20180110101714.jpg">可以看到,我们将北京市四环以内区域分成4个切片来进行处理,之所以分切片处理,主要是单个区域访问最多返回400个结果,当区域较大的时候,区域内往往不止400个,所以讲大区域进行切片处理,最后,我们通过数据聚合操作,发现返回的结果总共1014个。(理论上应该返回1600,实际返回1014,说明切片的数量是合适的)
好的,我们本篇的分享到这里就要结束了,最后只想说,API真的是个好东西,科学地使用它我们可以做出很多炫酷的应用,像现在比较活跃的数据型应用,其数据接口基本都是基于API形式的,后面的分享我们还会用到更多API的,大家一起期待吧,哈哈,今天就到这里了,各位回见。
圆月山庄资源网 Design By www.vgjia.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]