zhangwen 5 hours ago
parent
commit
964ae4e556
  1. 58
      login/kimi_auto_login_haozhu.py

58
login/kimi_auto_login_haozhu.py

@ -5,39 +5,49 @@ import time
import json import json
import requests import requests
from DrissionPage import ChromiumPage, ChromiumOptions, Chromium from DrissionPage import ChromiumPage, ChromiumOptions, Chromium
from psutil import users
class LubanSMS: class LubanSMS:
"""鲁班短信平台API封装""" """鲁班短信平台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): 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): 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) response = requests.get(url)
return response.json() return response.json()
def get_sms(self, phone): 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) response = requests.get(url)
return response.json() return response.json()
def set_status(self, phone): 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() response = requests.get(url).json()
print(response) print(response)
return response return response
@ -70,14 +80,14 @@ def save_spider_session(platform_id='4', file_url='', account='test', cookie='')
return res return res
def kimi_auto_login(api_key):
def kimi_auto_login( username, password, sid='97827'):
""" """
使DrissionPage和鲁班短信平台API自动登录Kimi 使DrissionPage和鲁班短信平台API自动登录Kimi
api_key: API密钥 api_key: API密钥
service_id: IDTinder越南服务 service_id: IDTinder越南服务
""" """
# 初始化鲁班短信API # 初始化鲁班短信API
luban = LubanSMS(api_key)
luban = LubanSMS( username, password, sid=sid)
# 检查余额 # 检查余额
balance_info = luban.get_balance() balance_info = luban.get_balance()
@ -85,7 +95,7 @@ def kimi_auto_login(api_key):
print(f"API密钥错误: {balance_info.get('msg')}") print(f"API密钥错误: {balance_info.get('msg')}")
return None return None
print(f"当前余额: {balance_info.get('balance')}元")
print(f"当前余额: {balance_info.get('money')}元")
co = ChromiumOptions() co = ChromiumOptions()
co.incognito(True) # 匿名模式 co.incognito(True) # 匿名模式
co.auto_port() co.auto_port()
@ -122,11 +132,12 @@ def kimi_auto_login(api_key):
time.sleep(2) time.sleep(2)
page.ele('xpath:/html/body/div[3]/div/div/div/label/span').click() page.ele('xpath:/html/body/div[3]/div/div/div/label/span').click()
# 获取手机号码 # 获取手机号码
number_info = {}
for i in range(30): for i in range(30):
print("正在获取手机号码...") print("正在获取手机号码...")
number_info = luban.get_number() number_info = luban.get_number()
print(number_info) print(number_info)
if number_info.get("code") != 0:
if str(number_info.get("code")) != '0':
print(f"获取手机号码失败: {number_info.get('msg')}") print(f"获取手机号码失败: {number_info.get('msg')}")
continue continue
else: else:
@ -166,13 +177,13 @@ def kimi_auto_login(api_key):
# 等待并获取验证码 # 等待并获取验证码
print("等待验证码...") print("等待验证码...")
sms_code = None sms_code = None
max_attempts = 15 # 最多等待30次,每次3秒
max_attempts = 60 # 最多等待30次,每次3秒
for i in range(max_attempts): for i in range(max_attempts):
sms_info = luban.get_sms(phone_number) sms_info = luban.get_sms(phone_number)
print(sms_info) 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}") print(f"收到验证码: {sms_code}")
break break
else: else:
@ -238,8 +249,10 @@ def kimi_auto_login(api_key):
finally: finally:
# 关闭浏览器 # 关闭浏览器
try: try:
luban.set_status(phone_number)
page.close() page.close()
br.quit() br.quit()
except Exception as e: except Exception as e:
print(e) print(e)
@ -247,13 +260,12 @@ def kimi_auto_login(api_key):
# eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1c2VyLWNlbnRlciIsImV4cCI6MTc4MDY1MDUzMSwiaWF0IjoxNzc4MDU4NTMxLCJqdGkiOiJkN3RnYTh0cWlwNjhpa3ZqdGtqMCIsInR5cCI6ImFjY2VzcyIsImFwcF9pZCI6ImtpbWkiLCJzdWIiOiJkN3RnYTh0cWlwNjhpa3ZqdGtlMCIsInNwYWNlX2lkIjoiZDd0Z2E4dHFpcDY4aWt2anRrZGciLCJhYnN0cmFjdF91c2VyX2lkIjoiZDd0Z2E4dHFpcDY4aWt2anRrZDAiLCJzc2lkIjoiMTczMTc0MTgwODg3MjkyMjE1MyIsImRldmljZV9pZCI6Ijc2MzY3MDMwMDkwOTA1ODg0MjciLCJyZWdpb24iOiJjbiIsIm1lbWJlcnNoaXAiOnsibGV2ZWwiOjEwfX0.t9mZ7v-XRWQp91QAWxhvG2l5-VKNwJUIv2R2YDD9ilOUStOh6Oz03wiwQkKLcxke17PuSfcj6DUY_8YByTl1rA # eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1c2VyLWNlbnRlciIsImV4cCI6MTc4MDY1MDUzMSwiaWF0IjoxNzc4MDU4NTMxLCJqdGkiOiJkN3RnYTh0cWlwNjhpa3ZqdGtqMCIsInR5cCI6ImFjY2VzcyIsImFwcF9pZCI6ImtpbWkiLCJzdWIiOiJkN3RnYTh0cWlwNjhpa3ZqdGtlMCIsInNwYWNlX2lkIjoiZDd0Z2E4dHFpcDY4aWt2anRrZGciLCJhYnN0cmFjdF91c2VyX2lkIjoiZDd0Z2E4dHFpcDY4aWt2anRrZDAiLCJzc2lkIjoiMTczMTc0MTgwODg3MjkyMjE1MyIsImRldmljZV9pZCI6Ijc2MzY3MDMwMDkwOTA1ODg0MjciLCJyZWdpb24iOiJjbiIsIm1lbWJlcnNoaXAiOnsibGV2ZWwiOjEwfX0.t9mZ7v-XRWQp91QAWxhvG2l5-VKNwJUIv2R2YDD9ilOUStOh6Oz03wiwQkKLcxke17PuSfcj6DUY_8YByTl1rA
if __name__ == '__main__': if __name__ == '__main__':
# 需要用户输入API密钥 # 需要用户输入API密钥
api_key = '5ebc10c8e8c35797de15c9af46063b36'
service_id = '541182'
a = 0 a = 0
for u in range(100): for u in range(100):
try: try:
result = kimi_auto_login(api_key)
result = kimi_auto_login( 'ef7f3e7dcafdcfcbe7aa4afda8efbabed39432e897032fbc6d43958513acaf83', 'c9d369d3fa0f3481158aa2b320b8067f61ae4f9d3801c132eae1c9e48e350791', sid='97827')
if result: if result:
a += 1 a += 1
print(f"自动登录完成,cookies文件: {result}") print(f"自动登录完成,cookies文件: {result}")

Loading…
Cancel
Save