慧眼看世界 - 一个值得收藏的网站
以下是一个完整的、可以直接运行的 CloudCone VPS 自动抢购脚本。请确保将必要的账户信息和 API 配置替换为您自己的内容。
完整代码
import time import random import requests from concurrent.futures import ThreadPoolExecutor # CloudCone API 基础配置 API_URL = "https://api.cloudcone.com/v1" EMAIL = "your_email@example.com" # 替换为您的 CloudCone 登录邮箱 PASSWORD = "your_password" # 替换为您的 CloudCone 登录密码 INITIAL_REFRESH_INTERVAL = 5 # 初始刷新间隔(秒) MAX_REFRESH_INTERVAL = 60 # 最大刷新间隔(秒) MAX_ATTEMPTS = 20 # 最大尝试次数 THREAD_COUNT = 3 # 并发线程数 # 动态配置范围 CONFIG_RANGE = { "cpu": (1, 4), # CPU 核心范围 "memory": (1024, 8192), # 内存范围 (MB) "storage": (20, 100), # 存储范围 (GB) "bandwidth": (1, 5), # 带宽范围 (TB) "regions": ["US West", "US East", "Europe"] # 可选区域 } # 登录函数:获取 API Token def login_via_api(): try: response = requests.post( f"{API_URL}/login", data={"email": EMAIL, "password": PASSWORD} ) if response.status_code == 200: token = response.json().get("access_token") if not token: raise Exception("未能获取 Token,请检查登录返回数据。") print("[INFO] 登录成功,Token 已获取!") return token else: raise Exception(f"登录失败:{response.text}") except Exception as e: print(f"[ERROR] 登录错误:{e}") return None # 随机生成 VPS 配置 def generate_random_config(): config = { "cpu": random.randint(*CONFIG_RANGE["cpu"]), "memory": random.randint(*CONFIG_RANGE["memory"]), "storage": random.randint(*CONFIG_RANGE["storage"]), "bandwidth": random.randint(*CONFIG_RANGE["bandwidth"]), "region": random.choice(CONFIG_RANGE["regions"]), } print(f"[INFO] 生成的随机配置:{config}") return config # 抢购函数:提交 VPS 配置 def purchase_via_api(token): headers = {"Authorization": f"Bearer {token}"} payload = generate_random_config() try: response = requests.post(f"{API_URL}/deploy", headers=headers, json=payload) if response.status_code == 200: print("[SUCCESS] 抢购成功!返回数据:", response.json()) return True # 抢购成功 else: print(f"[INFO] 抢购失败,错误信息:{response.text}") return False except Exception as e: print(f"[ERROR] 抢购过程中发生错误:{e}") return False # 并发抢购尝试函数 def attempt_purchase(): token = login_via_api() if token: return purchase_via_api(token) return False # 主函数入口 if __name__ == "__main__": refresh_interval = INITIAL_REFRESH_INTERVAL attempts = 0 while attempts < MAX_ATTEMPTS: attempts += 1 print(f"\n[INFO] 第 {attempts} 次尝试抢购...") with ThreadPoolExecutor(max_workers=THREAD_COUNT) as executor: futures = [executor.submit(attempt_purchase) for _ in range(THREAD_COUNT)] results = [future.result() for future in futures] # 如果任意一个线程成功抢购,则结束脚本 if any(results): print("[INFO] 抢购成功,脚本结束!") break # 抢购失败,调整刷新间隔并重试 print(f"[INFO] 第 {attempts} 次抢购失败,等待 {refresh_interval} 秒后重试...") time.sleep(refresh_interval) refresh_interval = min(refresh_interval + 5, MAX_REFRESH_INTERVAL) # 动态增加间隔 if attempts >= MAX_ATTEMPTS: print("[INFO] 达到最大尝试次数,脚本结束。")
使用说明
替换登录信息
将代码中的 EMAIL 和 PASSWORD 替换为您在 CloudCone 的登录邮箱和密码。
调整 VPS 配置
根据需求修改 payload 中的 VPS 参数,例如 cpu、memory、storage、bandwidth 和 region。
运行脚本
python cloudcone_vps_auto.py
重要注意事项
1.CloudCone API 文档
确保 API URL 和端点 (/login 和 /deploy) 是正确的。如果 URL 有更新,请根据官方文档调整。
2.Token 安全性
请勿将脚本中包含敏感信息的部分公开(如 EMAIL、PASSWORD 和 token)。
推荐使用环境变量来存储敏感信息,替代硬编码的方式。
3.错误排查
如果脚本报错,请检查 CloudCone 是否提供了 API 服务支持,或者尝试手动调用 API 验证其可用性。
4.频率限制
避免频繁调用 API,可能会触发 CloudCone 的反滥用机制。
如遇到任何问题,可以随时提供具体的错误信息,我会帮助您进一步优化代码!
什么是 API Token?
API Token 是用于验证您的身份并允许您通过编程方式访问 CloudCone 的 API 服务的密钥。它就像一把钥匙,用于保护您的账户免受未经授权的访问。
如何获取 API Token
按照以下步骤获取 API Token:
1.登录 CloudCone 打开 CloudCone 网站并使用您的账号密码登录。 CloudCone 登录页面
2.进入 API 配置 登录后,访问用户仪表板中的 API Settings 页面:
在主菜单中,找到 API 或 Account Settings(可能根据平台更新略有不同)。
如果找不到,可以直接咨询 CloudCone 文档或支持团队。
3.生成 API Token
在 API 配置页面,点击 Generate New API Token。
系统会为您生成一个密钥,通常是随机字符串。
将这个 Token 复制并保存,某些平台生成后不会再次显示。
4.设置 API 权限
确保您的 API Token 有足够的权限,比如部署 VPS 或查看资源的权限。
如何在脚本中设置 Token
将生成的 Token 替换到脚本中 TOKEN 的位置。例如:
TOKEN = "abcd1234efgh5678ijkl9012mnop3456" # 替换为实际的 API Token
安全注意事项
不要将 Token 公开:不要将 Token 提交到公开代码仓库或分享给他人。
定期更换 Token:为确保安全,定期在 CloudCone 平台上重新生成 Token。
环境变量存储(推荐):为避免直接将 Token 写入代码,可以将它存储为环境变量。
运行这套脚本的步骤如下:
示例:在环境变量中存储 Token,然后脚本读取:
# 设置环境变量(Linux/MacOS)
# 设置环境变量(Linux/MacOS) export CLOUDCONE_API_TOKEN="abcd1234efgh5678ijkl9012mnop3456" # 或在 Windows 中设置 set CLOUDCONE_API_TOKEN=abcd1234efgh5678ijkl9012mnop3456
Python 脚本读取环境变量:
import os TOKEN = os.getenv("CLOUDCONE_API_TOKEN") if not TOKEN: raise Exception("请设置环境变量 CLOUDCONE_API_TOKEN")
运行这套脚本的步骤如下:
1. 环境准备
安装 Python
确保已安装 Python 3.7 以上版本。
在终端(或命令行)中运行以下命令检查版本:
python --version
如果未安装 Python,请从 Python 官网 下载并安装。
安装依赖库
这套脚本依赖 requests 库。安装方法:
pip install requests
设置脚本文件
保存脚本
打开任意文本编辑器(如 Notepad、VS Code 或 PyCharm)。
将完整的脚本代码复制粘贴到文件中。
保存文件,命名为 cloudcone_vps_auto.py。
编辑脚本
打开脚本文件,找到以下内容并替换为您自己的信息:
EMAIL = "your_email@example.com" # 替换为您的 CloudCone 登录邮箱 PASSWORD = "your_password" # 替换为您的 CloudCone 登录密码
根据需求,修改抢购的 VPS 配置:
payload = { "cpu": 2, # 替换为目标 CPU 核心数 "memory": 4096, # 替换为目标内存大小 (MB) "storage": 50, # 替换为目标存储大小 (GB) "bandwidth": 2, # 替换为目标带宽 (TB) "region": "US West" # 替换为目标数据中心位置 }
3. 运行脚本
在终端中执行
打开命令行工具(Windows 的 CMD、Mac 的终端或 Linux Shell)。
导航到保存脚本的文件夹:
cd /path/to/your/script
替换 /path/to/your/script 为保存脚本的实际路径。
执行脚本:
python cloudcone_vps_auto.py
查看输出
脚本执行后,您将在终端中看到以下类似输出:
登录成功:
登录成功,Token 已获取!
抢购成功:
抢购成功!返回数据:{'vps_id': '12345', 'status': 'success'}
如果失败,将打印错误信息,帮助您排查问题。
常见问题与解决
1. 报错 ModuleNotFoundError: No module named 'requests'
您需要安装 requests 库,运行以下命令:
pip install requests
2. 报错 SyntaxError: invalid syntax
可能是 Python 版本过低,请升级到 Python 3.7 或以上。
3. 抢购失败:401 Unauthorized
检查登录邮箱和密码是否正确。
确认 CloudCone 的 API URL 是否变动,可能需要查看官方文档。
4. 报错 Timeout 或 ConnectionError
网络连接不稳定,请尝试更换网络环境。
确保 CloudCone 的 API 服务可用。
改进运行体验(可选)
1. 添加定时抢购
使用 Python 内置的 time.sleep() 定时轮询抢购:
import time while True: try: token = login_via_api() purchase_via_api(token) break except Exception as e: print(f"抢购失败,重试中:{e}") time.sleep(5) # 每隔 5 秒重试
2. 使用环境变量存储敏感信息
设置环境变量(安全性更高):
export CLOUDCONE_EMAIL="your_email@example.com" export CLOUDCONE_PASSWORD="your_password"
修改脚本读取环境变量:
import os EMAIL = os.getenv("CLOUDCONE_EMAIL") PASSWORD = os.getenv("CLOUDCONE_PASSWORD") if not EMAIL or not PASSWORD: raise Exception("请设置环境变量 CLOUDCONE_EMAIL 和 CLOUDCONE_PASSWORD")
运行过程中如有任何问题,可以提供具体错误信息,我会帮您解决!
本文链接:https://www.sxlog.com/post/1872.html