diff --git a/modules/search/github_api.py b/modules/search/github_api.py index 2a7ed64..254313c 100644 --- a/modules/search/github_api.py +++ b/modules/search/github_api.py @@ -13,54 +13,29 @@ class GithubAPI(Search): self.module = 'Search' self.addr = 'https://api.github.com/search/code' self.domain = domain - self.session = requests.Session() - self.session.trust_env = False - self.auth_url = 'https://api.github.com' self.token = settings.github_api_token - def auth_github(self): - """ - github api 认证 - - :return: 认证失败返回False 成功返回True - """ - self.session.headers.update({'Authorization': 'token ' + self.token}) - try: - resp = self.session.get(self.auth_url) - except Exception as e: - logger.log('ERROR', e.args) - return False - if resp.status_code != 200: - resp_json = resp.json() - msg = resp_json.get('message') - logger.log('ERROR', msg) - return False - return True - def search(self): """ 向接口查询子域并做子域匹配 """ - self.session.headers = self.get_header() - self.session.proxies = self.get_proxy(self.source) - self.session.verify = self.verify - self.session.headers.update( + self.header = self.get_header() + self.proxy = self.get_proxy(self.source) + self.header.update( {'Accept': 'application/vnd.github.v3.text-match+json'}) - if not self.auth_github(): - logger.log('ERROR', f'{self.source} module login failed') - return page = 1 while True: time.sleep(self.delay) params = {'q': self.domain, 'per_page': 100, - 'page': page, 'sort': 'indexed'} + 'page': page, 'sort': 'indexed', + 'access_token': self.token} try: - resp = self.session.get(self.addr, params=params) + resp = self.get(self.addr, params=params) except Exception as e: logger.log('ERROR', e.args) break - if resp.status_code != 200: + if not resp or resp.status_code != 200: logger.log('ERROR', f'{self.source} module query failed') break subdomains = self.match_subdomains(resp) @@ -106,4 +81,4 @@ def run(domain): if __name__ == '__main__': - run('example.com') + run('mi.com')