简体中文 | English
这是一个用于自动化注册 Requesty 账号并获取 API Key 的脚本项目。
程序会通过 BitBrowser 本地 API 创建独立浏览器环境,打开 Requesty 注册页面,使用临时邮箱接收验证码,通过邮箱验证后创建 API Key,并把邮箱、密码和 API Key 追加写入 data.txt。
基于最新版 DrissionPage 框架,利用其对 iframe 和 shadow 元素的支持,让自动化处理 Cloudflare 验证成为可能。注册、收信、验证、创建 API Key、保存结果均由代码自动完成。
- Python 3.12+
- 已安装并启动 BitBrowser
- BitBrowser 本地 API 地址可访问:
http://127.0.0.1:54345 - 可用的临时邮箱服务配置,目前支持
mailnest
安装依赖:
pip install -r requirements.txt首次运行时,如果项目根目录不存在 cfg.yaml,程序会自动从 cfg.example.yaml 复制一份并退出。你需要编辑 cfg.yaml 后再重新运行。
配置示例:
email:
provider_name: mailnest
# https://mailnest.top/
mailnest:
project_code: 'requesty001'
api_key: ''
# 如果要使用代理,需要去 proxy.py 里面配置,并运行 proxy.py
use_proxy: false
proxy_backend_port: 5000
timeout: 60
max_workers: 3字段说明:
email.provider_name:邮箱服务提供方名称,目前填写mailnest。email.mailnest.project_code:MailNest 项目编号。email.mailnest.api_key:MailNest API Key,必须填写。获取页面https://mailnest.top/。use_proxy:是否给 BitBrowser 浏览器环境配置动态代理。proxy_backend_port:本项目本地代理提取服务端口,对应proxy.py启动端口。timeout:单个等待流程的超时时间,单位为秒。max_workers:并发注册任务数量。数值越大,同时打开的浏览器窗口越多,对机器性能、BitBrowser、邮箱服务和代理质量要求越高。
如果 cfg.yaml 中是 use_proxy: false,程序不会给 BitBrowser 配置代理,可以直接运行主程序。
如果 use_proxy: true,需要先配置并启动 proxy.py。主程序会把 BitBrowser 的动态代理地址设置为:
http://127.0.0.1:{proxy_backend_port}/get-proxy
也就是说,BitBrowser 每次需要代理时,会请求本地 proxy.py 提供的 /get-proxy 接口。这个接口必须返回一行纯文本代理地址,例如:
127.0.0.1:7899
当前 proxy.py 示例默认返回本机 HTTP 代理:
@app.route("/get-proxy", methods=["GET"])
def get_proxy():
# ip = requests.get('http://proxy-extract-url').text
ip = '127.0.0.1:7899'
return ip, 200, {
"Content-Type": "text/plain"
}如果使用购买的动态代理,可以把 proxy.py 中的示例改成请求代理商提供的提取 URL,然后只返回一个 BitBrowser 能识别的代理地址:
@app.route("/get-proxy", methods=["GET"])
def get_proxy():
ip = requests.get('http://proxy-extract-url').text.strip()
return ip, 200, {
"Content-Type": "text/plain"
}启动代理后端:
python proxy.py保持 proxy.py 运行,再另开一个终端运行主程序。
当前代码默认使用 http 代理。如果使用其他代理类型,需要同步修改 register.py 中的 proxyType。
在项目根目录执行:
python main.py运行后,程序会按 max_workers 启动多个注册任务。每个任务会创建 BitBrowser 浏览器配置、打开浏览器、获取临时邮箱、进入 Requesty 注册页、处理 Cloudflare 验证、读取邮箱验证码、创建 API Key,并在成功后向 data.txt 追加一行:
email@example.com----password----api_key
其中 password 为邮箱地址 @ 前面的部分。
程序支持通过 Ctrl+C 停止。
按下 Ctrl+C 后,主线程会停止创建新的注册任务,并等待当前已经提交的任务结束。每个任务结束时会尝试关闭并删除对应的 BitBrowser 浏览器配置,避免留下未清理的浏览器窗口。
不建议直接强制关闭终端或结束 Python 进程,除非程序已经无响应。强制退出可能导致当前浏览器窗口或 BitBrowser 配置没有被清理。