先前參考了其餘的代碼,大多數是python2.7寫的,而3.6用的類庫以及規則有了很大的變更,因此本身寫了一個這樣的代碼,供給你們參考。python
1 def get_station(i): 2 station=[] 3 bus_sto=urllib.parse.quote(u'公交站'.encode('utf-8')) 4 city=urllib.parse.quote(u'南昌'.encode('utf-8')) 5 url1="http://api.map.baidu.com/place/v2/search?ak=&output=json&query=%s&scope=1®ion=%s&page_size=1&page_num=%d"%(bus_sto,city,i) 6 #encodedStr = urllib.parse.quote(url1, safe="/:=&?#+!$,;'@()*[]") 7 req=requests.get(url1) 8 content= req.content 9 data=json.loads(content) 10 station.append(data['total']) 11 result=data['results'] 12 str_temp=result[0] 13 loc=str_temp['location'] 14 lng=float(loc['lng']) 15 lat=float(loc['lat']) 16 station.append(str_temp['name']+",%f"%lng+",%f"%lat) 17 print (station[1]) 18 return station 19 20 def run(): 21 get_num=get_station(0) 22 num=get_num[0] 23 for i in range(0,num): 24 Bstation=get_station(i) 25 file = open('.\\baidull.txt','a') 26 file.writelines(Bstation[1]+'\n') 27 file.close() 28 29 if __name__=='__main__': 30 run()
問題仍是有一些,好比說調用API時返回的數據有時不足,應該是百度地圖那邊作了必定的限制,後續可能會採用隨機IP的方法。json