python爬取百度地图数据_百度地图POI数据爬取
利用百度地圖開發者中心中的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)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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
總結
以上是生活随笔為你收集整理的python爬取百度地图数据_百度地图POI数据爬取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器视频无法播放
- 下一篇: 最新h5微信大灌篮小游戏投篮赚钱源码+手