我已經構建了以下使用谷歌的地方api獲取電話號碼的小程序,但它很慢。當我測試6個項目時,它需要從4.86s到1.99s的任何地方,我不確定爲什麼會發生重大變化。我對API很陌生,所以我甚至不確定哪些事情可以/不能加快,哪些事情留給服務於API的Web服務器,以及我可以改變自己。如何加快API請求?
import requests,json,time
searchTerms = input("input places separated by comma")
start_time = time.time() #timer
searchTerms = searchTerms.split(',')
for i in searchTerms:
r1 = requests.get('https://maps.googleapis.com/maps/api/place/textsearch/json?query='+ i +'&key=MY_KEY')
a = r1.json()
pid = a['results'][0]['place_id']
r2 = requests.get('https://maps.googleapis.com/maps/api/place/details/json?placeid='+pid+'&key=MY_KEY')
b = r2.json()
phone = b['result']['formatted_phone_number']
name = b['result']['name']
website = b['result']['website']
print(phone+' '+name+' '+website)
print("--- %s seconds ---" % (time.time() - start_time))
我認爲你必須在這裏考慮各種因素的時間。首先,您的程序從上述URL中檢索信息所花費的時間(這將受Internet速度和Web服務器發送響應所花費的時間的影響)+ python分析該信息所用的時間。我建議分別計算這兩次,看看哪個時間需要更長的時間,以及有多少變化.. –
請記住,在某些時候,你會打穀歌地圖的API速率限制;) –