From ade54c0d3229ea2f40db327e1b5927f7744c693b Mon Sep 17 00:00:00 2001 From: theluyuan <1162963624@qq.com> Date: Sat, 21 Feb 2026 19:59:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20README=EF=BC=9A=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=AF=B4=E6=98=8E=E3=80=81=E7=8E=AF=E5=A2=83=E3=80=81?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=AD=A5=E9=AA=A4=E4=B8=8E=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..8a13e92 --- /dev/null +++ b/README.md @@ -0,0 +1,49 @@ +# audiencescf + +使用 Nodriver 自动通过 Cloudflare Turnstile 验证,访问受保护的目标页面。通过页面上的「给我搜」按钮(`#search_btn`)判断是否已通过验证。 + +## 功能 + +- 启动时从项目根目录 `cookies.txt` 加载 Cookie(支持 Netscape 与 nodriver 原生格式) +- 进入目标页后根据 `#search_btn` 的 value 是否为「给我搜」判断是否需要验证 +- 需要验证时:等待 CF 自动通过 + 使用模板匹配点击 Turnstile 复选框(依赖 `box.png`) +- 验证后等待 10 秒再次检查;若仍未变为「给我搜」则刷新页面并重新走验证流程,直到通过或手动关闭 + +## 环境 + +- Python 3.x +- 依赖:`nodriver`;点击 Turnstile 时需 `opencv-python`(模板匹配) + +```bash +pip install -r requirements.txt +pip install opencv-python +``` + +## 使用 + +1. 在 `main.py` 中确认 `TARGET_URL` 为目标页面地址。 +2. (可选)在项目根目录放置 `cookies.txt`: + - Netscape 格式:首行为 `# Netscape` 或 `# HTTP Cookie File` + - 或使用 nodriver 原生导出的格式 +3. 若使用 Turnstile 点击,确保根目录有模板图 `box.png`(与当前页面复选框区域匹配)。 +4. 运行: + +```bash +python main.py +``` + +默认以有界面浏览器运行,便于通过验证。 + +## 文件说明 + +| 文件 | 说明 | +|------|------| +| `main.py` | 主流程:加载 Cookie、打开页面、判断验证、点击 Turnstile、循环重试 | +| `cookies_loader.py` | 读取并注入 `cookies.txt`(Netscape / 原生格式) | +| `box.png` | Turnstile 复选框模板图,用于截图匹配点击 | +| `cookies.txt` | 本地 Cookie 文件(已加入 .gitignore,勿提交) | + +## 注意 + +- `cookies.txt`、`click_position.png` 等已写入 `.gitignore`,不会随仓库提交。 +- 修改目标站点时请同步确认 `#search_btn` 与「给我搜」的文案是否仍适用于该页面。