目前,大厂的服务范围越来越广,提供的数据信息也是比较全的,在生活服务,办公领域,人工智能等方面都全面覆盖,相对来说,他们的用户基数大,通过用户获取的信息也是巨大的。除了百度提供api,国内提供免费API获取数据的还有很多,包括新浪、豆瓣电影、饿了么、阿里、腾讯等今天使用百度地图API来请求我们想要的数据。
第一步.注册百度开发者账号
注册成功后就可以获取到应用服务AK也就是API秘钥,这个是最重要的,应用名称可以随便取,如果是普通用户一天只有2000调用限额,认证用户一天有10万次调用限额
在百度地图web服务API文档中我可以看见提供的接口和相关参数,其中就有我们要获取的AK参数,使用的GET请求
一.下面我们尝试使用API获取获取北京市的城市公园数据,需要配置参数
importrequestsimportjsondefgetjson(loc):
headers= {‘User-Agent‘ : ‘Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6‘}
pa={‘q‘: ‘公园‘,‘region‘: loc,‘scope‘: ‘2‘,‘page_size‘: 20,‘page_num‘: 0,‘output‘: ‘json‘,‘ak‘: ‘填写自己的AK‘}
r= requests.get("http://api.map.baidu.com/place/v2/search", params=pa, headers=headers)
decodejson=json.loads(r.text)returndecodejson
getjson(‘北京市‘)
二.获取所有拥有公园的城市
importrequestsimportjsondefgetjson(loc):
headers= {‘User-Agent‘ : ‘Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6‘}
pa={‘q‘: ‘公园‘,‘region‘: loc,‘scope‘: ‘2‘,‘page_size‘: 20,‘page_num‘: 0,‘output‘: ‘json‘,‘ak‘: ‘填写自己的AK‘}
r= requests.get("http://api.map.baidu.com/place/v2/search", params=pa, headers=headers)
decodejson=json.loads(r.text)returndecodejson
province_list= [‘江苏省‘, ‘浙江省‘, ‘广东省‘, ‘福建省‘, ‘山东省‘, ‘河南省‘, ‘河北省‘, ‘四川省‘, ‘辽宁省‘, ‘云南省‘,‘湖南省‘, ‘湖北省‘, ‘江西省‘, ‘安徽省‘, ‘山西省‘, ‘广西壮族自治区‘, ‘陕西省‘, ‘黑龙江省‘, ‘内蒙古自治区‘,‘贵州省‘, ‘吉林省‘, ‘甘肃省‘, ‘新疆维吾尔自治区‘, ‘海南省‘, ‘宁夏回族自治区‘, ‘青海省‘, ‘西藏自治区‘]for eachprovince inprovince_list:
decodejson&