Я построил следующую небольшую программу для получения телефонных номеров с использованием google-сайта api, но это довольно медленно. Когда я тестирую 6 предметов, это занимает от 4,88 до 1,99, и я не уверен, почему произошли значительные изменения во времени. Я очень новичок в API, поэтому я даже не уверен, какие вещи могут/не могут быть ускорены, какие вещи остались на веб-сервере, обслуживающем API, и что я могу изменить сам.Как ускорить запросы 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 (на это будет влиять скорость интернета и время, затраченное веб-сервером на отправку ответа) + время, затрачиваемое python для анализа этой информации. Я бы предложил рассчитать эти два раза отдельно и посмотреть, какое время занимает больше времени и сколько изменений существует. –
имейте в виду, что в какой-то момент вы попадете в пределы ограничений API для карт Google;) –