问题描述
限时送ChatGPT账号..我已经构建了以下小程序,用于使用 google 的 place api 获取电话号码,但速度很慢.当我用 6 个项目进行测试时,它需要从 4.86 秒到 1.99 秒不等,我不确定为什么时间会有显着变化.我对 API 很陌生,所以我什至不确定哪些事情可以/不能加速,哪些事情留给为 API 提供服务的网络服务器以及我可以自己改变什么.
I've constructed the following little program for getting phone numbers using google's place api but it's pretty slow. When I'm testing with 6 items it takes anywhere from 4.86s to 1.99s and I'm not sure why the significant change in time. I'm very new to API's so I'm not even sure what sort of things can/cannot be sped up, which sort of things are left to the webserver servicing the API and what I can change myself.
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/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/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))
推荐答案
您可能希望并行发送请求.Python 提供了 multiprocessing
模块,适用于类似任务这个.
You may want to send requests in parallel. Python provides multiprocessing
module which is suitable for task like this.
示例代码:
from multiprocessing import Pool
def get_data(i):
r1 = requests.get('https://maps.googleapis/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/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']
return ' '.join((phone, name, website))
if __name__ == '__main__':
terms = input("input places separated by comma").split(",")
with Pool(5) as p:
print(p.map(get_data, terms))
这篇关于如何加速 API 请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论