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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222
| import json import urllib import urllib.request import xlwt
def getPOIFromBaiduMap(lat_1,lon_1,lat_2,lon_2,las,keyword,excelSaveFolder): count = 0 ak = '' keynew = str(urllib.parse.quote(keyword)) push = excelSaveFolder+'\\'+keyword+'.xls' f = open(push, 'w') lat_count = int((lat_2 - lat_1) / las + 1) lon_count = int((lon_2 - lon_1) / las + 1) for lat_c in range(0, lat_count): lat_b1 = lat_1 + las * lat_c for lon_c in range(0, lon_count): lon_b1 = lon_1 + las * lon_c for i in range(0, 20): page_num = str(i) url = r'http://api.map.baidu.com/place/v2/search?query=' + keynew + '&bounds=' + str(lat_b1) + ',' + str(lon_b1) + ',' + str(lat_b1 + las) + ',' + str(lon_b1 + las) + '&page_size=20&page_num=' + str(page_num) + '&output=json&ak=' + ak count=count+1 print(str(count)) response = urllib.request.urlopen(url) data = json.load(response) try: for item in data['results']: jname = item['name'] print(jname) jlat = item['location']['lat'] jlon = item['location']['lng'] jadd = item['address'] j_str = jname + ',' + str(jlat) + ',' + str(jlon) + ',' + jadd + '\n' f.write(j_str) print(j_str) except: print("Error") f.close()
classArray= ['中餐厅', '外国餐厅', '小吃快餐店', '蛋糕甜品店', '咖啡厅', '茶座', '酒吧', '星级酒店', '快捷酒店', '公寓式酒店', '民宿', '购物中心', '百货商场', '超市', '便利店', '家居建材', '家电数码', '商铺', '市场', '通讯营业厅', '邮局', '物流公司', '售票处', '洗衣店', '图文快印店', '照相馆', '房产中介机构', '公用事业', '维修点', '家政服务', '殡葬服务', '彩票销售点', '宠物服务', '报刊亭', '公共厕所', '步骑行专用道驿站', '美容', '美发', '美甲', '美体', '公园', '动物园', '植物园', '游乐园', '博物馆', '水族馆', '海滨浴场', '文物古迹', '教堂', '风景区', '景点', '寺庙', '度假村', '农家院', '电影院', 'ktv', '剧院', '歌舞厅', '网吧', '游戏场所', '洗浴按摩', '休闲广场', '体育场馆', '极限运动场所', '健身中心', '高等院校', '中学', '小学', '幼儿园', '成人教育', '亲子教育', '特殊教育学校', '留学中介机构', '科研机构', '培训机构', '图书馆', '科技馆', '新闻出版', '广播电视', '艺术团体', '美术馆', '展览馆', '文化宫', '综合医院', '专科医院', '诊所', '药店', '体检机构', '疗养院', '急救中心', '疾控中心', '医疗器械', '医疗保健', '汽车销售', '汽车维修', '汽车美容', '汽车配件', '汽车租赁', '汽车检测场', '飞机场', '火车站', '地铁站', '地铁线路', '长途汽车站', '公交车站', '公交线路', '港口', '停车场', '加油加气站', '服务区', '收费站', '桥', '充电站', '路侧停车位', '普通停车位', '接送点', '银行', 'ATM', '信用社', '投资理财', '典当行', '写字楼', '住宅区', '宿舍', '内部楼栋', '公司', '园区', '农林园艺', '厂矿', '中央机构', '各级政府', '行政单位', '公检法机构', '涉外机构', '党派团体', '福利机构', '政治教育机构', '社会团体', '民主党派', '居民委员会', '高速公路出口', '高速公路入口', '机场出口', '机场入口', '车站出口', '车站入口', '门', '停车场出入口', '自行车高速出口', '自行车高速入口', '自行车高速出入口', '岛屿', '山峰', '水系', '省', '省级城市', '地级市', '区县', '商圈', '乡镇', '村庄']
lat_1=21.502705 lon_1=110.321145 lat_2=25.519951 lon_2=116.220296
las=0.2
getPOIFromBaiduMap(lat_1, lon_1, lat_2, lon_2, las, classArray[0])
for i in range(len(classArray)): print("-------------------Collecting"+classArray[i]+"!---------------------------") getPOIFromBaiduMap(lat_1, lon_1, lat_2, lon_2, las, classArray[i]) print("-------------------" + classArray[i] + "Collected-------------------------")
|