@@ -115,10 +115,11 @@ def _request(self, url, params=None, headers=None, method='GET'):
115115 """
116116 # if method is "GET" use requests.get
117117 if method == "GET" :
118- resp = requests .get (url , data = params , headers = headers )
118+ resp = requests .get (url , params = params , headers = headers )
119119 # request method is "POST"
120120 else :
121- resp = requests .post (url , params , headers )
121+ resp = requests .post (url , data = params , headers = headers )
122+ print (resp .text )
122123 # if response succeed and status code is 200 return json data
123124 if resp and resp .status_code == 200 :
124125 data = resp .json ()
@@ -133,6 +134,21 @@ def _request(self, url, params=None, headers=None, method='GET'):
133134 else :
134135 raise ValueError (resp .json ().get ('message' ))
135136
137+ def _check_header (self ):
138+ if self .api_key :
139+ headers = {
140+ 'API-KEY' : self .api_key ,
141+ }
142+ elif self .access_token :
143+ headers = {
144+ 'Authorization' : 'JWT %s' % self .access_token
145+ }
146+ else :
147+ headers = {}
148+ # add user agent
149+ headers ["User-Agent" ] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
150+ return headers
151+
136152 def login (self ):
137153 """
138154 please see: https://www.zoomeye.org/doc#login
@@ -167,9 +183,7 @@ def dork_search(self, dork, page=0, resource="host", facets=None):
167183 search_api = self .search_api .format (resource )
168184 if isinstance (facets , (tuple , list )):
169185 facets = ',' .join (facets )
170- headers = {'Authorization' : 'JWT %s' % self .access_token ,
171- 'API-KEY' : self .api_key ,
172- }
186+ headers = self ._check_header ()
173187 params = {'query' : dork , 'page' : page , 'facets' : facets }
174188 resp = self ._request (search_api , params = params , headers = headers )
175189 if resp and "matches" in resp :
@@ -207,10 +221,7 @@ def multi_page_search(self, dork, page=1, resource="host",
207221 self .search_type = resource
208222 search_api = self .search_api .format (resource )
209223
210- headers = {
211- 'Authorization' : 'JWT %s' % self .access_token ,
212- 'API-KEY' : self .api_key ,
213- }
224+ headers = self ._check_header ()
214225
215226 dork_data = []
216227 all_data = []
@@ -246,9 +257,7 @@ def resources_info(self) -> dict:
246257 see: https://www.zoomeye.org/doc#resources-info
247258 :return: dict
248259 """
249- headers = {'Authorization' : 'JWT %s' % self .access_token ,
250- 'API-KEY' : self .api_key ,
251- }
260+ headers = self ._check_header ()
252261 result = self ._request (self .user_info_api , headers = headers )
253262 return result
254263
@@ -301,9 +310,7 @@ def history_ip(self, ip):
301310 result = {}
302311
303312 zoomeye_api = self .history_api .format (ip )
304- headers = {'Authorization' : 'JWT %s' % self .access_token ,
305- 'API-KEY' : self .api_key ,
306- }
313+ headers = self ._check_header ()
307314 resp = self ._request (zoomeye_api , headers = headers )
308315 if resp and 'data' in resp :
309316 result = resp
@@ -321,7 +328,7 @@ def domain_search(self, q, source=0, page=1) -> list:
321328 list
322329 """
323330 search_api = self .search_api .format ('domain' )
324- headers = { 'Authorization' : 'JWT %s' % self .access_token , 'API-KEY' : self . api_key }
331+ headers = self ._check_header ()
325332 request_result = self ._request (search_api , params = {"q" : q , "type" : source , "page" : page }, headers = headers )
326333 if request_result :
327334 self .raw_data = request_result # json字符串
@@ -336,7 +343,7 @@ def generate_dot(self, q, source=0, page=1):
336343 """
337344 error_info = ''
338345 search_api = self .search_api .format ('domain' )
339- headers = { 'Authorization' : 'JWT %s' % self .access_token , 'API-KEY' : self . api_key }
346+ headers = self ._check_header ()
340347 try :
341348 request_result = self ._request (search_api , params = {"q" : q , "type" : source , "page" : page }, headers = headers )
342349 except Exception as e :
0 commit comments