44
55
66class ApiClient (object ):
7- """OutScraperApiClient - Python sdk that allows extracting data from Google services via OutScraper API.
7+ """OutScraper ApiClient - Python SDK that allows extracting data from Google services via OutScraper API.
88 ```python
99 from outscraper import ApiClient
1010 api_cliet = ApiClient(api_key='SECRET_API_KEY')
@@ -30,7 +30,11 @@ def get_request_archive(self, request_id):
3030 dict: result from the archive
3131 """
3232 response = requests .get (f'{ self ._api_url } /requests/{ request_id } ' )
33- return response .json ()
33+
34+ if 199 < response .status_code < 300 :
35+ return response .json ()
36+
37+ raise Exception (f'Response status code: { response .status_code } ' )
3438
3539 def _wait_request_archive (self , request_id , requests_pause ):
3640 ttl = self ._max_ttl / requests_pause
@@ -56,7 +60,7 @@ def google_search(self, query, language='en', region='us'):
5660 sleep (10 )
5761 return self ._wait_request_archive (response .json ()['id' ], 2 )
5862
59- raise Exception (f'Server response code: { response .status_code } ' )
63+ raise Exception (f'Response status code: { response .status_code } ' )
6064
6165 def google_maps_search (self , query , language = 'en' , region = 'us' , limit = 400 , extract_contacts = False , coordinates = None ):
6266 response = requests .get (f'{ self ._api_url } /maps/search' , params = {
@@ -72,21 +76,23 @@ def google_maps_search(self, query, language='en', region='us', limit=400, extra
7276 sleep (15 )
7377 return self ._wait_request_archive (response .json ()['id' ], 5 )
7478
75- raise Exception (f'Server response code: { response .status_code } ' )
79+ raise Exception (f'Response status code: { response .status_code } ' )
7680
77- def google_maps_business_reviews (self , query , language = 'en' , region = 'us' , limit = 100 , cutoff = None , coordinates = None ):
81+ def google_maps_business_reviews (self , query , language = 'en' , region = 'us' , limit = 100 , cutoff = None , coordinates = None , sort = 'most_relevant' , cutoff_rating = None ):
7882 response = requests .get (f'{ self ._api_url } /maps/reviews' , params = {
7983 'query' : query ,
8084 'coordinates' : coordinates ,
8185 'language' : language ,
8286 'region' : region ,
8387 'limit' : 1 ,
8488 'cutoff' : cutoff ,
85- 'reviewsPerOrganizationLimit' : limit
89+ 'cutoffRating' : cutoff_rating ,
90+ 'reviewsPerOrganizationLimit' : limit ,
91+ 'sort' : sort ,
8692 }, headers = {'X-API-KEY' : self ._api_key })
8793
8894 if 199 < response .status_code < 300 :
8995 sleep (30 )
9096 return self ._wait_request_archive (response .json ()['id' ], 5 ).get ('data' , [])
9197
92- raise Exception (f'Server response code: { response .status_code } ' )
98+ raise Exception (f'Response status code: { response .status_code } ' )
0 commit comments