|
立刻注册账号,享受更清爽的界面!
您需要 登录 才可以下载或查看,没有账号?注册
×
受到关于Manus邀请码的无限自我裂变这篇帖子的启发
做了个全自动注册机。由于技术太菜,不会过盾,因此使用capsolver进行过盾(非推广)
使用方法:
在文件前面部分(如图)
输入你的capsolver api密钥 代理ip 以及初始邀请码(从1到n无限裂变,实现邀请码自由)
会自动输出注册过的账号到accounts.txt
会输出所有产出的邀请码到inviteCodes.txt(包含过程中被使用的)
引用到的包:
capsolver
requests
完整代码
- import time
- import requests
- import capsolver
- import random
- import threading
- # ===================================配置信息===================================
- capsolver.api_key = "" # capsolver密钥
- useProxy = "" # 代理ip
- initInviteCode = "" # 初始邀请码
- password = "lksdnvsdopgjeoqwf." # 密码
- # ===================================配置信息===================================
- if useProxy == "":
- proxy = None
- else:
- proxy = {
- "http": useProxy,
- "https": useProxy
- }
- def cf_bypass():
- solution = capsolver.solve({
- "type": "AntiTurnstileTaskProxyLess",
- "websiteURL": "https://manus.im/login",
- "websiteKey": "0x4AAAAAAA_sd0eRNCinWBgU",
- "metadata": {
- "type": "signUp"
- }
- })
- print(solution)
- return solution['token']
- def send_email(email):
- resp = requests.post("https://api.manus.im/api/user/send_email_verify_code_with_captcha", json={
- "email": email,
- "action": "register",
- "captcha_pass_token": {
- "cf_challenge_response": cf_bypass()
- }
- }, proxies=proxy, headers={
- "Content-Type": "application/json",
- "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
- "origin": "https://manus.im",
- "referer": "https://manus.im"
- })
- return resp.json()['code']
- def register(email, password, code):
- resp = requests.post("https://api.manus.im/api/user/register_by_email", json={
- "email": email,
- "password": password,
- "verify_code": code,
- "first_from_platform": "web",
- "locale": "zh-CN",
- "name": "xxx"
- }, proxies=proxy, headers={
- "Content-Type": "application/json",
- "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
- "origin": "https://manus.im",
- "referer": "https://manus.im"
- })
- if resp.json()['code'] == 0:
- return resp.cookies['session_id']
- return ""
- def check_invitation(at, code):
- resp = requests.post("https://api.manus.im/user.v1.UserService/CheckInvitationCode", json={
- "code": code
- }, headers={
- 'Host': 'api.manus.im',
- 'x-client-locale': 'zh-CN',
- 'sec-ch-ua-platform': '"macOS"',
- 'authorization': f'Bearer {at}',
- 'sec-ch-ua': '"Google Chrome";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',
- 'sec-ch-ua-mobile': '?0',
- 'connect-protocol-version': '1',
- 'x-client-dcr': 'hbM4BVL9Ln4yhpoveJHyQV7zLFkQBZQseqUyf5j0LHoxgJYvLH4kBbESXbEBLGHzAcH4AcfsLHIzfJaoY5YlV5o3OcXcQb7cQlDrV3kXWXzvLJasd5XjU5Ymd51sLHQrfp2wCV1aPcXxPF7zOmDjX5IpBAMsOcXcQb7cQlLvLpayB5IvCVL9LqsrOXQRLlzleJIxC6YkC5YcLmseLqsrOXQRLo3vLqUseZY9e58oLmrlTAQsBV2WdJIxC5kkdVLvLqQmfpYoelL9hbM6dZU3dFL9PmD4QlzldJYsC5k3LmraPcL8iVzlgpoog6EyfqTlRqvlg5ongJjlRmLzQWBvLpkodZgrgFL9PWH8RK3vLqUseZY9e58oW5Cpf5Y3LmrwQGjziT==',
- 'x-client-type': 'web',
- 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
- 'content-type': 'application/json',
- 'x-client-id': 'sADl8cGSN4FqRINFYY1jWj',
- 'accept': '*/*',
- 'origin': 'https://manus.im',
- 'sec-fetch-site': 'same-site',
- 'sec-fetch-mode': 'cors',
- 'sec-fetch-dest': 'empty',
- 'referer': 'https://manus.im/',
- 'accept-language': 'zh-CN,zh;q=0.9',
- 'priority': 'u=1, i'
- }, proxies=proxy)
- def get_invitation(at):
- resp = requests.post("https://api.manus.im/user.v1.UserService/GetPersonalInvitationCodes", json={}, headers={
- "Authorization": f"Bearer {at}",
- "Content-Type": "application/json",
- "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
- "origin": "https://manus.im",
- "referer": "https://manus.im"
- }, proxies=proxy)
- print(resp.json())
- return resp.json()
- def get_sid(email):
- name = email.split('@')[0]
- resp = requests.post('https://www.guerrillamail.com/ajax.php?f=set_email_user',
- data=f"email_user={name}&lang=zh&site=guerrillamail.com&in=+%E8%AE%BE%E7%BD%AE+%E5%8F%96%E6%B6%88",
- headers={
- 'authorization': 'ApiToken 8aaee4521214aaf20bad7d9bb6c97b3f31130a02a1f9ea0509ba905ec6db318e',
- 'origin': 'https://www.guerrillamail.com',
- 'referer': 'https://www.guerrillamail.com/zh/inbox',
- 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
- }).json()
- return resp['sid_token']
- def get_mail_box(sid):
- resp = requests.get('https://www.guerrillamail.com/ajax.php?f=check_email&seq=176044396&site=guerrillamail.com&in=test&_=1740328165890', cookies={
- 'PHPSESSID': sid
- }).json()
- for row in resp['list']:
- if row['mail_from'] == 'noreply@mail.manus.im':
- return get_mail_detail(sid, row['mail_id'])
- def get_mail_detail(sid, mid):
- resp = requests.get(f'https://www.guerrillamail.com/ajax.php?f=fetch_email&email_id=mr_{mid}&site=guerrillamail.com&in=test&_=1740328165951', cookies={
- 'PHPSESSID': sid
- }).json()
- return resp['mail_body'].split('<span style="font-size:24px;font-family:Inter, Arial, sans-serif;font-weight:600;color:#262626;line-height:150%;">')[1].split('\n')[0]
- def work(inviteCode):
- email = random.sample('abcdefghijklmnopqrstuvwxyz', 16)
- email = ''.join(email)
- email += "@grr.la"
- print(inviteCode, "邮箱:", email)
- if send_email(email) == 0:
- print(inviteCode, "发送验证码成功")
- else:
- print(inviteCode, "发送验证码失败")
- return
- sid = get_sid(email)
- while (1):
- try:
- time.sleep(1)
- code = get_mail_box(sid)
- if code is None:
- continue
- break
- except:
- pass
- at = register(email, password, code) # 注册
- with open("accounts.txt", 'a') as f:
- f.write(f"{email}----{password}\n")
- print(inviteCode, "注册成功")
- print(inviteCode, at)
- check_invitation(at, inviteCode) # 检查邀请码
- codes = get_invitation(at) # 获取邀请码
- for row in codes['invitationCodes']:
- print("邀请码", row['inviteCode'])
- with open("inviteCodes.txt", 'a') as f:
- f.write(f"{row['inviteCode']}\n")
- threading.Thread(target=work, args=(row['inviteCode'],)).start()
- time.sleep(1)
- if __name__ == "__main__":
- work(initInviteCode)
- time.sleep(9999999)
复制代码
同时考虑到有部分佬没有激活码,特此附上200条可用激活码
邀请码只建议在本帖中的代码使用,如有需要可以移步论坛坛友发的集中贴,谢谢合作 |
|