How to speed up API requests?

后端 未结 5 1565
没有蜡笔的小新
没有蜡笔的小新 2020-12-16 02:31

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 fr

5条回答
  •  遥遥无期
    2020-12-16 02:43

    You may want to send requests in parallel. Python provides multiprocessing module which is suitable for task like this.

    Sample code:

    from multiprocessing import Pool
    
    def get_data(i):
        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']
        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))
    

提交回复
热议问题