diff --git a/login/kimi_auto_login_haozhu.py b/login/kimi_auto_login_haozhu.py index 19685de..50f422d 100644 --- a/login/kimi_auto_login_haozhu.py +++ b/login/kimi_auto_login_haozhu.py @@ -5,39 +5,49 @@ import time import json import requests from DrissionPage import ChromiumPage, ChromiumOptions, Chromium +from psutil import users class LubanSMS: """鲁班短信平台API封装""" - def __init__(self, api_key): - self.api_key = api_key - self.base_url = "https://lubansms.com/v2/api" + def __init__(self, username, password, sid='97827'): + self.sid = sid + self.username = username + self.password = password + self.base_url = "https://api.haozhuma.com" + self.token = self.get_token() + self.get_token() + + def get_token(self): + url = f'{self.base_url}/sms/?api=login&user={self.username}&pass={self.password}' + res = requests.get(url).json() + # print(res) + token = res['token'] + return token def get_balance(self): """查询余额""" - url = f"{self.base_url}/getBalance" - params = {"apikey": self.api_key} - response = requests.get(url, params=params) - return response.json() + url = f"{self.base_url}/sms/?api=getSummary&token={self.token}" + response = requests.get(url).json() + print('账号信息:', response) + return response def get_number(self): """获取手机号码""" - url = 'https://lubansms.com/v2/api/getKeywordNumber?apikey=5ebc10c8e8c35797de15c9af46063b36&phone=&cardType=全部' - url = 'https://lubansms.com/v2/api/getKeywordNumber?apikey=5ebc10c8e8c35797de15c9af46063b36&phone=&cardType=%E5%85%A8%E9%83%A8' - url = 'https://lubansms.com/v2/api/getKeywordNumber?apikey=5ebc10c8e8c35797de15c9af46063b36&phone=&cardType=%E5%85%A8%E9%83%A8' + url = f'{self.base_url}/sms/?api=getPhone&token={self.token}&sid={self.sid}' response = requests.get(url) return response.json() def get_sms(self, phone): """获取短信验证码""" - url = f"https://lubansms.com/v2/api/getKeywordSms?apikey=5ebc10c8e8c35797de15c9af46063b36&phone={phone}&keyword=月之暗面" + url = f"{self.base_url}/sms/?api=getMessage&token={self.token}&sid={self.sid}&phone={phone}" response = requests.get(url) return response.json() def set_status(self, phone): - """更改请求状态""" - url = f'https://lubansms.com/v2/api/delKeywordNumber?apikey=5ebc10c8e8c35797de15c9af46063b36&phone={phone}' + """拉黑号码""" + url = f'{self.base_url}/sms/?api=addBlacklist&token={self.token}&sid={self.sid}&phone={phone}' response = requests.get(url).json() print(response) return response @@ -70,14 +80,14 @@ def save_spider_session(platform_id='4', file_url='', account='test', cookie='') return res -def kimi_auto_login(api_key): +def kimi_auto_login( username, password, sid='97827'): """ 使用DrissionPage和鲁班短信平台API自动登录Kimi api_key: 鲁班短信平台API密钥 service_id: 服务ID,默认为Tinder越南服务 """ # 初始化鲁班短信API - luban = LubanSMS(api_key) + luban = LubanSMS( username, password, sid=sid) # 检查余额 balance_info = luban.get_balance() @@ -85,7 +95,7 @@ def kimi_auto_login(api_key): print(f"API密钥错误: {balance_info.get('msg')}") return None - print(f"当前余额: {balance_info.get('balance')}元") + print(f"当前余额: {balance_info.get('money')}元") co = ChromiumOptions() co.incognito(True) # 匿名模式 co.auto_port() @@ -122,11 +132,12 @@ def kimi_auto_login(api_key): time.sleep(2) page.ele('xpath:/html/body/div[3]/div/div/div/label/span').click() # 获取手机号码 + number_info = {} for i in range(30): print("正在获取手机号码...") number_info = luban.get_number() print(number_info) - if number_info.get("code") != 0: + if str(number_info.get("code")) != '0': print(f"获取手机号码失败: {number_info.get('msg')}") continue else: @@ -166,13 +177,13 @@ def kimi_auto_login(api_key): # 等待并获取验证码 print("等待验证码...") sms_code = None - max_attempts = 15 # 最多等待30次,每次3秒 + max_attempts = 60 # 最多等待30次,每次3秒 for i in range(max_attempts): sms_info = luban.get_sms(phone_number) print(sms_info) - if sms_info.get("code") == 0: - sms_code = sms_info.get("msg") + if str(sms_info.get("code")) == '0': + sms_code = sms_info.get("sms") print(f"收到验证码: {sms_code}") break else: @@ -238,8 +249,10 @@ def kimi_auto_login(api_key): finally: # 关闭浏览器 try: + luban.set_status(phone_number) page.close() br.quit() + except Exception as e: print(e) @@ -247,13 +260,12 @@ def kimi_auto_login(api_key): # eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1c2VyLWNlbnRlciIsImV4cCI6MTc4MDY1MDUzMSwiaWF0IjoxNzc4MDU4NTMxLCJqdGkiOiJkN3RnYTh0cWlwNjhpa3ZqdGtqMCIsInR5cCI6ImFjY2VzcyIsImFwcF9pZCI6ImtpbWkiLCJzdWIiOiJkN3RnYTh0cWlwNjhpa3ZqdGtlMCIsInNwYWNlX2lkIjoiZDd0Z2E4dHFpcDY4aWt2anRrZGciLCJhYnN0cmFjdF91c2VyX2lkIjoiZDd0Z2E4dHFpcDY4aWt2anRrZDAiLCJzc2lkIjoiMTczMTc0MTgwODg3MjkyMjE1MyIsImRldmljZV9pZCI6Ijc2MzY3MDMwMDkwOTA1ODg0MjciLCJyZWdpb24iOiJjbiIsIm1lbWJlcnNoaXAiOnsibGV2ZWwiOjEwfX0.t9mZ7v-XRWQp91QAWxhvG2l5-VKNwJUIv2R2YDD9ilOUStOh6Oz03wiwQkKLcxke17PuSfcj6DUY_8YByTl1rA if __name__ == '__main__': # 需要用户输入API密钥 - api_key = '5ebc10c8e8c35797de15c9af46063b36' - service_id = '541182' + a = 0 for u in range(100): try: - result = kimi_auto_login(api_key) + result = kimi_auto_login( 'ef7f3e7dcafdcfcbe7aa4afda8efbabed39432e897032fbc6d43958513acaf83', 'c9d369d3fa0f3481158aa2b320b8067f61ae4f9d3801c132eae1c9e48e350791', sid='97827') if result: a += 1 print(f"自动登录完成,cookies文件: {result}")