发布于2019-08-20 12:30 阅读(2228) 评论(0) 点赞(3) 收藏(3)
利用百度地图开发者中心中的web API获取城市POI数据,后期会写出完整的多种参数详细数据获取教程。本次只写出了根据关键词和目的地的数据获取程序。
将爬取下来的数据保存到本地csv文件。
百度API返回的是标准的json格式数据。具体实现程序如下:
import time
import json
import sys
import requests
from tqdm import tqdm #进度条显示包
def get_info(keyname, place, ak, path):
"""
Function:
Arg:
keyname:传入的是一个关键字列表
place:传入的是一个查询地方(str)
ak:申请的百度地图开发者中心的AK
"""
urls = []
for i in keyname:
url = "http://api.map.baidu.com/place/v2/search?query="+i+"®ion="+place+"&output=json&ak="+ak
urls.append(url)
for url in tqdm(urls):
try:
time.sleep(0.1) # 为了防止并发量报警,设置了一个5秒的休眠。
html = requests.get(url) # 获取网页信息
data = html.json() # 获取网页信息的json格式数据
print(data)
except:
time.sleep(1)
continue
if data['status'] == 0:
if 'results' in data:
for item in data['results']:
name = item.get('name', 'default')
if 'location' in item:
lat = item['location']['lat']
lon = item['location']['lng']
else:
lat = item.get('location', 'default')
lon = item.get('location', 'default')
address = item.get('address', 'default')
province = item.get('province', 'default')
city= item.get('city', 'default')
area= item.get('area', 'default')
street = item.get('street_id', 'default')
detail = item.get('detail', 'default')
uid = item.get('uid', 'default')
# j_str = jname+','+str(jlat)+','+str(jlon)+','+jadd+'\n'
with open(path, 'a', encoding='utf-8') as f:
f.write(str(name) + ',' + str(lat) + ',' + str(lon) + ',' + str(address).replace(',', ';') + ',' + province + ',' + city
+ ',' + area + ',' + str(street) + ',' + str(detail) + ',' + str(uid) + ',' + url.replace(',', ';') + '\n')
# print('已经成功获取第%d分之%d条url信息' % (times, url_count))
else:
print('no results')
pass
else:
ignor += 1
# for ii in range(0, 12):
# if ii < 12:
# print("已等待%d" % ii + "小时")
# time.sleep(3600)
# print("12小时等待结束")
print("已经忽略%d条url" % ignor)
continue
if __name__ == '__main__':
keyname=["中奇大厦","他她公寓","阳光大厦","凯风大厦","鑫成大厦"]
place="武汉"
ak="你在百度申请的AK"
savepath = r"E:\dosn2\save\data_download2.csv"
with open(savepath, 'a', encoding='utf-8') as f:
f.write("name" + ',' + "lat" + ',' + "lon" + ',' +"add" + ',' + "province" + ',' + "city"
+ ',' + "area" + ',' + "street" + ',' + "detail"+ ',' + "uid" + ',' + "url" + '\n')
get_info(keyname, place, ak, savepath)
作者:8778787
链接:https://www.pythonheidong.com/blog/article/49254/27e0fbbf9b2639134ac6/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!