From 5e4e987313476839d19d49a5cb74474301502f24 Mon Sep 17 00:00:00 2001 From: 27942 Date: Wed, 25 Feb 2026 20:35:46 +0800 Subject: [PATCH] haha --- 1.html | 453 +------------------------- captcha_debug/captcha_bg.png | Bin 0 -> 130186 bytes captcha_debug/captcha_piece.png | Bin 0 -> 2557 bytes dp_slider_verify.py | 279 ++++++++++++++++ server/api/auth.py | 9 +- tyyp_1html_dp.py | 549 ++++++++++++++++++++++++++++++++ 6 files changed, 835 insertions(+), 455 deletions(-) create mode 100644 captcha_debug/captcha_bg.png create mode 100644 captcha_debug/captcha_piece.png create mode 100644 dp_slider_verify.py create mode 100644 tyyp_1html_dp.py diff --git a/1.html b/1.html index f35e2d4..89ddc71 100644 --- a/1.html +++ b/1.html @@ -1,452 +1 @@ -天翼云盘AI铂金会员订购页
订购须知
1.方案编号:天翼云盘AI铂金会员(方案编号:24HN103214)
2.资费名称: 天翼云盘AI铂金会员
3.资费类型: 权益包
4.资费标准: 20元/月
5.服务内容: 享天翼云盘AI铂金会员权益服务,可享受天翼云盘8T超大存储空间,单日上传文件大小不限量,回收站文件保存60天、在线编辑、云解压等特权。
6.适用范围: 适用于湖南电信手机用户;主副卡均可订购。
7.有效期限: 订购立即生效,有效期24个月,到期按20元/月自动续订24个月。
8.销售渠道:线上及线下渠道均可办理。
9.上下线时间: 天翼云盘AI铂金会员2020-11-07至2027-10-31
10.在网要求:无
11.退订方式: 线上和线下渠道办理。线上为中国电信APP、网厅、10000号,线下营业厅。
12.违约责任:无
13.其他事项: 本业务无合约约束,可随时取消。订购当月费用按天折算并立即扣费,次月起月初扣费,订购首月权益全量提供。
更多资费内容请认真阅读订购须知。
确认订购请在下面输入手机号,填写验证码后办理。

验证码请勿告知他人,填入后视同订购“天翼云盘AI铂金会员”业务,资费20元/月。

我已认真阅读并知晓 同意办理业务
请完成安全验证
向右滑动完成验证
\ No newline at end of file + diff --git a/captcha_debug/captcha_bg.png b/captcha_debug/captcha_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..3dfcc022a8ccda235ae58b4b197b8c6d26b423cf GIT binary patch literal 130186 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

itLD5L?Ry=s2DUD)ZC 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


EPDXGDWcX$zu7u-m=07kFd46x=F? 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 tuple[np.ndarray, np.ndarray]: + bg = np.array(Image.open(bg_path).convert("RGB"), dtype=np.int16) + piece_rgba = np.array(Image.open(piece_path).convert("RGBA"), dtype=np.int16) + return bg, piece_rgba + + +def _piece_bbox(alpha: np.ndarray, threshold: int = 12) -> tuple[int, int, int, int, np.ndarray]: + mask = alpha > threshold + if not mask.any(): + raise ValueError("拼图块图片 alpha 全透明,无法匹配") + + ys, xs = np.where(mask) + y0, y1 = int(ys.min()), int(ys.max()) + 1 + x0, x1 = int(xs.min()), int(xs.max()) + 1 + return x0, y0, x1, y1, mask + + +def calc_drag_distance( + bg_path: Path, + piece_path: Path, + alpha_threshold: int = 12, +) -> dict: + """返回最佳匹配位置与建议拖动距离。""" + bg, piece_rgba = _load_images(bg_path, piece_path) + + bh, bw = bg.shape[:2] + ph, pw = piece_rgba.shape[:2] + if ph != bh: + raise ValueError(f"图片高度不一致:背景={bh}, 拼图块={ph}") + + alpha = piece_rgba[:, :, 3] + x0, y0, x1, y1, _ = _piece_bbox(alpha, threshold=alpha_threshold) + + piece_crop = piece_rgba[y0:y1, x0:x1, :3] + mask = alpha[y0:y1, x0:x1] > alpha_threshold + ys, xs = np.where(mask) + piece_pixels = piece_crop[ys, xs] + + patch_h, patch_w = piece_crop.shape[:2] + if patch_w > bw or patch_h > bh: + raise ValueError("拼图块裁剪后尺寸超过背景图") + + max_x = bw - patch_w + best_x = 0 + best_score = float("inf") + second_best = float("inf") + + # 固定 y,按 x 扫描。评分越小越好。 + for x in range(max_x + 1): + patch_pixels = bg[y0 + ys, x + xs] + score = float(np.abs(patch_pixels - piece_pixels).mean()) + if score < best_score: + second_best = best_score + best_score = score + best_x = x + elif score < second_best: + second_best = score + + # 如果拼图初始从最左侧出发,建议拖动距离可用:best_x - x0 + drag_distance = best_x - x0 + confidence_ratio = (second_best / best_score) if best_score > 0 else float("inf") + + return { + "target_x": int(best_x), + "piece_bbox_x0": int(x0), + "piece_bbox_y0": int(y0), + "piece_bbox_w": int(patch_w), + "piece_bbox_h": int(patch_h), + "drag_distance": int(drag_distance), + "best_score": best_score, + "second_best": second_best, + "confidence_ratio": confidence_ratio, + "bg_width": int(bw), + "bg_height": int(bh), + } + + +def save_debug_overlay(bg_path: Path, out_path: Path, match: dict) -> None: + img = Image.open(bg_path).convert("RGB") + draw = ImageDraw.Draw(img) + x = int(match["target_x"]) + y = int(match["piece_bbox_y0"]) + w = int(match["piece_bbox_w"]) + h = int(match["piece_bbox_h"]) + draw.rectangle([x, y, x + w, y + h], outline=(255, 0, 0), width=2) + img.save(out_path) + + +def build_human_track(distance: int) -> list[int]: + """生成拟人拖动轨迹(整数步长列表)。""" + if distance == 0: + return [] + + direction = 1 if distance > 0 else -1 + remaining = abs(int(round(distance))) + + track: list[int] = [] + moved = 0 + velocity = 0.0 + interval = 0.02 + accelerate_until = remaining * 0.7 + + while moved < remaining: + if moved < accelerate_until: + acc = random.uniform(2.0, 4.0) + else: + acc = -random.uniform(3.0, 6.0) + + step = max(1, int(velocity * interval + 0.5 * acc * interval * interval * 100)) + moved += step + velocity = max(0.0, velocity + acc * interval) + track.append(step) + + overflow = moved - remaining + if overflow > 0 and track: + track[-1] -= overflow + if track[-1] <= 0: + track.pop() + + # 小幅回拉,增加拟人性 + if remaining >= 30: + back = random.randint(1, 3) + track.extend([-back, back]) + + return [direction * s for s in track if s != 0] + + +def drag_slider_with_dp(page, slider_selector: str, distance: int) -> None: + slider = page.ele(slider_selector, timeout=8) + if not slider: + raise RuntimeError(f"未找到滑块元素:{slider_selector}") + + # 若元素支持直接 drag,优先用内置实现 + if hasattr(slider, "drag"): + try: + slider.drag(offset_x=distance, offset_y=0, duration=0.8) + return + except Exception: + pass + + actions = page.actions + actions.move_to(slider, duration=0.2) + + hold_ok = False + for hold_call in ( + lambda: actions.hold(slider), + lambda: actions.hold(), + ): + try: + hold_call() + hold_ok = True + break + except Exception: + continue + + if not hold_ok: + raise RuntimeError("无法按下滑块,请确认 DrissionPage 版本与页面状态") + + for step in build_human_track(distance): + dy = random.randint(-1, 1) + moved = False + for move_call in ( + lambda: actions.move(step, dy, duration=random.uniform(0.01, 0.04)), + lambda: actions.move(offset_x=step, offset_y=dy, duration=random.uniform(0.01, 0.04)), + lambda: actions.move(step, dy), + lambda: actions.move(offset_x=step, offset_y=dy), + ): + try: + move_call() + moved = True + break + except Exception: + continue + if not moved: + raise RuntimeError("动作链 move 调用失败,请按当前 DrissionPage 版本调整 move 参数") + + released = False + for release_call in ( + lambda: actions.release(), + lambda: actions.release(on_ele=None), + ): + try: + release_call() + released = True + break + except Exception: + continue + + if not released: + raise RuntimeError("动作链 release 调用失败") + + +def maybe_run_dp_drag(args: argparse.Namespace, distance: int) -> None: + if not args.url or not args.slider: + return + + from DrissionPage import ChromiumOptions, ChromiumPage + + if args.port: + co = ChromiumOptions().set_local_port(port=args.port) + page = ChromiumPage(addr_or_opts=co) + else: + page = ChromiumPage() + + page.get(args.url) + if args.wait_after_open > 0: + time.sleep(args.wait_after_open) + + drag_slider_with_dp(page, args.slider, distance) + + +def parse_args() -> argparse.Namespace: + root = Path(__file__).resolve().parent + + parser = argparse.ArgumentParser(description="DP 滑块验证辅助脚本") + parser.add_argument("--bg", type=Path, default=root / "下载 (1).png", help="背景图路径") + parser.add_argument("--piece", type=Path, default=root / "下载.png", help="拼图块图路径") + parser.add_argument("--alpha-threshold", type=int, default=12, help="透明阈值(0-255)") + parser.add_argument("--debug-out", type=Path, default=root / "slider_match_debug.png", help="匹配结果标注图") + + # 以下参数用于真实页面拖动(可选) + parser.add_argument("--url", type=str, default="", help="验证码页面 URL") + parser.add_argument("--slider", type=str, default="", help="滑块元素选择器") + parser.add_argument("--port", type=int, default=0, help="连接已有浏览器的本地端口") + parser.add_argument("--distance-adjust", type=int, default=0, help="对计算结果追加修正像素") + parser.add_argument("--wait-after-open", type=float, default=1.0, help="打开页面后等待秒数") + + return parser.parse_args() + + +def main() -> None: + args = parse_args() + + if not args.bg.exists(): + raise FileNotFoundError(f"背景图不存在:{args.bg}") + if not args.piece.exists(): + raise FileNotFoundError(f"拼图块图不存在:{args.piece}") + + match = calc_drag_distance(args.bg, args.piece, alpha_threshold=args.alpha_threshold) + save_debug_overlay(args.bg, args.debug_out, match) + + distance = int(match["drag_distance"]) + int(args.distance_adjust) + + print("匹配结果:") + print(f" target_x={match['target_x']}") + print(f" piece_bbox_x0={match['piece_bbox_x0']}") + print(f" 建议拖动距离 drag_distance={match['drag_distance']}") + print(f" 调整后拖动距离 distance={distance}") + print(f" best_score={match['best_score']:.4f}, second_best={match['second_best']:.4f}") + print(f" confidence_ratio={match['confidence_ratio']:.4f} (越大越好)") + print(f" 标注图已输出:{args.debug_out}") + + if args.url and args.slider: + maybe_run_dp_drag(args, distance) + print("DP 拖动已执行。") + + +if __name__ == "__main__": + main() diff --git a/server/api/auth.py b/server/api/auth.py index 9938c66..f66f0d2 100644 --- a/server/api/auth.py +++ b/server/api/auth.py @@ -63,7 +63,10 @@ def get_info(request): return Response({"detail": "令牌无效或已过期"}, status=status.HTTP_401_UNAUTHORIZED) return Response({ - "username": record.username, - "token": record.token, - "created_at": record.created_at, + "data": { + "account_id": record.id, + "username": record.username, + "token": record.token, + "created_at": record.created_at, + }, }) diff --git a/tyyp_1html_dp.py b/tyyp_1html_dp.py new file mode 100644 index 0000000..5934f21 --- /dev/null +++ b/tyyp_1html_dp.py @@ -0,0 +1,549 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +站点流程自动化(DrissionPage): +1) 打开 http://yscnb.com/tyyp/1.html +2) 输入手机号 +3) 点击“获取验证码” +4) 解析弹窗中的拼图验证码并执行拖动 + +说明:仅实现到“滑块拖动”步骤,不会自动填写短信验证码。 +""" +from __future__ import annotations + +import argparse +import base64 +import random +import re +import time +from io import BytesIO +from pathlib import Path + +import numpy as np +from PIL import Image + + +def _to_rgba_array(image_bytes: bytes) -> np.ndarray: + return np.array(Image.open(BytesIO(image_bytes)).convert("RGBA"), dtype=np.int16) + + +def _to_rgb_array(image_bytes: bytes) -> np.ndarray: + return np.array(Image.open(BytesIO(image_bytes)).convert("RGB"), dtype=np.int16) + + +def _piece_bbox(alpha: np.ndarray, threshold: int = 12) -> tuple[int, int, int, int]: + mask = alpha > threshold + if not mask.any(): + raise ValueError("拼图块 alpha 全透明,无法匹配") + ys, xs = np.where(mask) + return int(xs.min()), int(ys.min()), int(xs.max()) + 1, int(ys.max()) + 1 + + +def calc_drag_distance_from_bytes(bg_bytes: bytes, piece_bytes: bytes, alpha_threshold: int = 12) -> dict: + """计算拼图目标位移(基于背景图 + 拼图块图)。""" + bg = _to_rgb_array(bg_bytes) + piece_rgba = _to_rgba_array(piece_bytes) + + bh, bw = bg.shape[:2] + ph, _ = piece_rgba.shape[:2] + if bh != ph: + raise ValueError(f"背景与拼图块高度不一致: {bh} != {ph}") + + alpha = piece_rgba[:, :, 3] + x0, y0, x1, y1 = _piece_bbox(alpha, threshold=alpha_threshold) + + piece_crop = piece_rgba[y0:y1, x0:x1, :3] + mask = alpha[y0:y1, x0:x1] > alpha_threshold + ys, xs = np.where(mask) + piece_pixels = piece_crop[ys, xs] + + patch_h, patch_w = piece_crop.shape[:2] + if patch_w > bw or patch_h > bh: + raise ValueError("拼图块裁剪尺寸超过背景图") + + best_x = 0 + best_score = float("inf") + second_best = float("inf") + max_x = bw - patch_w + + for x in range(max_x + 1): + patch_pixels = bg[y0 + ys, x + xs] + score = float(np.abs(patch_pixels - piece_pixels).mean()) + if score < best_score: + second_best = best_score + best_score = score + best_x = x + elif score < second_best: + second_best = score + + drag_distance = best_x - x0 + confidence_ratio = (second_best / best_score) if best_score > 0 else float("inf") + + return { + "target_x": int(best_x), + "piece_bbox_x0": int(x0), + "piece_bbox_y0": int(y0), + "piece_bbox_w": int(patch_w), + "piece_bbox_h": int(patch_h), + "bg_width": int(bw), + "bg_height": int(bh), + "drag_distance": int(drag_distance), + "best_score": best_score, + "second_best": second_best, + "confidence_ratio": confidence_ratio, + } + + +def parse_data_url(data_url: str) -> bytes: + if not data_url.startswith("data:image"): + raise ValueError("图片不是 data:image URL") + _, data = data_url.split(",", 1) + return base64.b64decode(data) + + +def style_px(style_text: str, key: str, default: float) -> float: + if not style_text: + return default + m = re.search(rf"{re.escape(key)}\s*:\s*([0-9.]+)px", style_text) + if not m: + return default + return float(m.group(1)) + + +def click_safe(ele) -> None: + try: + ele.click() + return + except Exception: + pass + ele.click(by_js=True) + + +def _ease_out_quad(t: float) -> float: + return t * (2 - t) + + +def _ease_out_cubic(t: float) -> float: + return 1 - (1 - t) ** 3 + + +def _ease_out_bounce(t: float) -> float: + if t < 1 / 2.75: + return 7.5625 * t * t + elif t < 2 / 2.75: + t -= 1.5 / 2.75 + return 7.5625 * t * t + 0.75 + elif t < 2.5 / 2.75: + t -= 2.25 / 2.75 + return 7.5625 * t * t + 0.9375 + else: + t -= 2.625 / 2.75 + return 7.5625 * t * t + 0.984375 + + +def build_human_track(distance: int, num_steps: int = 0) -> list[dict]: + """生成仿人轨迹列表,每项 {'dx': int, 'dy': int, 'dt': float(秒)}。 + + 包含:加速-匀速-减速-过冲-回弹 五阶段。 + """ + if distance == 0: + return [] + + dist = abs(distance) + sign = 1 if distance > 0 else -1 + + if num_steps <= 0: + num_steps = max(12, int(dist * random.uniform(0.25, 0.4))) + + overshoot = random.randint(max(2, int(dist * 0.03)), max(3, int(dist * 0.08))) + total = dist + overshoot # 先超过,再回弹 + + easing = random.choice([_ease_out_quad, _ease_out_cubic]) + + # 正向阶段 + raw_positions: list[float] = [] + for i in range(1, num_steps + 1): + t = i / num_steps + raw_positions.append(easing(t) * total) + + # 回弹阶段 (2~4 步) + bounce_steps = random.randint(2, 4) + for j in range(1, bounce_steps + 1): + t = j / bounce_steps + raw_positions.append(total - _ease_out_bounce(t) * overshoot) + + track: list[dict] = [] + prev_x = 0.0 + for pos in raw_positions: + dx = round(pos - prev_x) + if dx == 0 and random.random() < 0.3: + continue + prev_x += dx + dy = random.choice([-1, 0, 0, 0, 1]) + # 前半段快、后半段慢(加快整体速度) + dt = random.uniform(0.005, 0.012) if prev_x < dist * 0.6 else random.uniform(0.008, 0.025) + if random.random() < 0.03: + dt += random.uniform(0.02, 0.06) + track.append({"dx": sign * dx, "dy": dy, "dt": dt}) + + # 最终位置校正 + actual = sum(s["dx"] for s in track) + diff = distance - actual + if diff != 0: + track.append({"dx": diff, "dy": 0, "dt": random.uniform(0.01, 0.03)}) + + return track + + +def _dispatch_mouse(page, event_type: str, x: int, y: int, button: str = "left") -> None: + """通过 CDP Input.dispatchMouseEvent 发送鼠标事件。""" + page.run_cdp( + "Input.dispatchMouseEvent", + type=event_type, + x=x, + y=y, + button=button, + clickCount=1 if event_type == "mousePressed" else 0, + ) + + +def _get_element_center(page, ele) -> tuple[int, int]: + """获取元素在视口中的中心坐标。""" + rect = page.run_js( + """const r = arguments[0].getBoundingClientRect(); + return {x: Math.round(r.x + r.width/2), y: Math.round(r.y + r.height/2)}""", + ele, + ) + if rect and isinstance(rect, dict): + return int(rect["x"]), int(rect["y"]) + # 回退:通过元素属性 + loc = ele.rect.midpoint + return int(loc[0]), int(loc[1]) + + +def drag_slider(page, slider_ele, distance: int) -> None: + """用 CDP 级鼠标事件完成拖拽,模拟真人操作轨迹。""" + cx, cy = _get_element_center(page, slider_ele) + + # 1. 鼠标移到滑块中心 + _dispatch_mouse(page, "mouseMoved", cx, cy) + time.sleep(random.uniform(0.03, 0.08)) + + # 2. 按下 + _dispatch_mouse(page, "mousePressed", cx, cy) + time.sleep(random.uniform(0.02, 0.06)) + + # 3. 沿轨迹移动 + cur_x, cur_y = cx, cy + track = build_human_track(distance) + for step in track: + cur_x += step["dx"] + cur_y += step["dy"] + _dispatch_mouse(page, "mouseMoved", cur_x, cur_y) + time.sleep(step["dt"]) + + # 4. 到达终点后短暂停留 + time.sleep(random.uniform(0.02, 0.06)) + + # 5. 释放 + _dispatch_mouse(page, "mouseReleased", cur_x, cur_y) + + +def find_first(page, selectors: list[str], timeout: float = 5): + for sel in selectors: + try: + ele = page.ele(sel, timeout=timeout) + if ele: + return ele + except Exception: + continue + return None + + +def wait_for_data_src(img_ele, timeout: float = 6, interval: float = 0.12) -> str: + """轮询等待 img 元素的 src 变为有效 data:image URL(含非空 base64 数据)。""" + deadline = time.time() + timeout + while time.time() < deadline: + src = img_ele.attr("src") or "" + if src.startswith("data:image"): + _prefix, _, b64 = src.partition(",") + if b64.strip(): + return src + time.sleep(interval) + raise RuntimeError(f"等待 data:image src 超时({timeout}s),当前 src 前80字符: {(img_ele.attr('src') or '')[:80]}") + + +def save_debug(debug_dir: Path, bg_bytes: bytes, piece_bytes: bytes) -> tuple[Path, Path]: + debug_dir.mkdir(parents=True, exist_ok=True) + bg_path = debug_dir / "captcha_bg.png" + piece_path = debug_dir / "captcha_piece.png" + bg_path.write_bytes(bg_bytes) + piece_path.write_bytes(piece_bytes) + return bg_path, piece_path + + +def run(args: argparse.Namespace) -> None: + from DrissionPage import ChromiumOptions, ChromiumPage + + t_start = time.perf_counter() + + if args.port: + co = ChromiumOptions().set_local_port(port=args.port) + page = ChromiumPage(addr_or_opts=co) + else: + page = ChromiumPage() + + page.get(args.url) + time.sleep(args.wait_page) + + # 首页先勾选协议 checkbox(id=color-input-red 的复选框),再点「立即订购」 + agree_checkbox = find_first(page, [ + "css:#color-input-red", + "css:input[name='color-input-red']", + 'x://input[@id="color-input-red"]', + "css:input.right-box[type='checkbox']", + ], timeout=5) + if agree_checkbox: + click_safe(agree_checkbox) + print("已勾选协议复选框") + time.sleep(0.4) # 勾选后等待 + + # 立即订购:点击 div.paybg 即为立即订购 + order_btn = None + for attempt in range(4): + order_btn = find_first(page, [ + "css:div.paybg", + "css:.paybg", + 'x://button[contains(.,"立即订购")]', + 'x://a[contains(.,"立即订购")]', + 'x://span[contains(.,"立即订购")]', + 'x://div[contains(.,"立即订购")]', + 'x://*[contains(text(),"立即订购")]', + 'x://*[contains(.,"立即订购")]', + "css:.btn-order", + "css:.order-btn", + "css:button.btn-primary", + "css:button.btn", + "css:a.btn", + ], timeout=1) + if order_btn: + break + time.sleep(0.25) + if order_btn: + try: + order_btn.run_js("this.scrollIntoView({block:'center'})") + time.sleep(0.05) + except Exception: + pass + click_safe(order_btn) + print("已点击立即订购") + time.sleep(0.4) + else: + # 兜底1:若页面有 jQuery,用 :contains 查找 + jq_clicked = False + try: + jq_clicked = page.run_js(""" + if (typeof $ !== 'undefined') { + var el = $('button, a, span, div').filter(function(){ return $(this).text().indexOf('立即订购')>=0; }).first(); + if (el.length) { el[0].scrollIntoView({block:'center'}); el[0].click(); return true; } + el = $('*').filter(function(){ return $(this).text().trim()==='立即订购'; }).first(); + if (el.length) { el[0].scrollIntoView({block:'center'}); el[0].click(); return true; } + } + return false; + """) + if jq_clicked: + print("已通过 jQuery 点击立即订购") + time.sleep(0.4) + except Exception: + pass + if not jq_clicked: + clicked = page.run_js(""" + var nodes = document.querySelectorAll('button, a, span, div, input[type=button], input[type=submit]'); + for (var i = 0; i < nodes.length; i++) { + var t = (nodes[i].innerText || nodes[i].textContent || '').trim(); + if (t === '立即订购' || (t.indexOf('立即订购') >= 0 && t.length < 20)) { + var el = nodes[i]; + if (el.offsetParent !== null || el.tagName === 'BODY') { + el.scrollIntoView({block: 'center'}); + el.dispatchEvent(new MouseEvent('click', {bubbles: true, cancelable: true, view: window})); + return true; + } + } + } + for (var i = 0; i < nodes.length; i++) { + var t = (nodes[i].innerText || nodes[i].textContent || '').trim(); + if (t.indexOf('立即订购') >= 0) { + nodes[i].scrollIntoView({block: 'center'}); + nodes[i].dispatchEvent(new MouseEvent('click', {bubbles: true, cancelable: true, view: window})); + return true; + } + } + return false; + """) + if clicked: + print("已通过 JS 点击立即订购") + time.sleep(0.4) + elif not clicked: + # 尝试在 iframe 内点击 + in_iframe = page.run_js(""" + var iframes = document.querySelectorAll('iframe'); + for (var i = 0; i < iframes.length; i++) { + try { + var doc = iframes[i].contentDocument || iframes[i].contentWindow.document; + var all = doc.querySelectorAll('*'); + for (var j = 0; j < all.length; j++) { + var t = (all[j].innerText || all[j].textContent || '').trim(); + if (t.indexOf('立即订购') >= 0) { + all[j].scrollIntoView({block:'center'}); + all[j].dispatchEvent(new MouseEvent('click',{bubbles:true,cancelable:true,view:window})); + return true; + } + } + } catch(e) {} + } + return false; + """) + if in_iframe: + print("已在 iframe 内点击立即订购") + time.sleep(0.4) + else: + # 调试:输出包含「立即订购」的元素信息 + try: + info = page.run_js(""" + var out=[], all=document.querySelectorAll('*'); + for(var i=0;i=0) + out.push(all[i].tagName+(all[i].id?'#'+all[i].id:'')+(all[i].className?'.'+all[i].className.split(' ')[0]:'')); + } + return out.slice(0,5).join(', ') || '无'; + """) + print(f"调试: 包含「立即订购」的元素(前5个): {info}") + except Exception: + pass + print("警告: 未找到「立即订购」按钮,尝试继续...") + + phone_input = find_first(page, [ + 'x://input[@placeholder="请输入手机号码"]', + "css:input.inp-txt", + ], timeout=8) + if not phone_input: + raise RuntimeError("未找到手机号输入框") + + phone_input.input(args.phone, clear=True) + print(f"已输入手机号: {args.phone}") + + if not args.skip_agree: + agree = find_first(page, [ + "css:i.ico-checkbox", + 'x://i[contains(@class,"ico-checkbox")]', + ], timeout=2) + if agree: + try: + click_safe(agree) + print("已点击同意勾选") + except Exception: + print("同意勾选点击失败,继续执行") + + send_btn = find_first(page, [ + "css:button.btn-code", + 'x://button[contains(text(),"获取验证码")]', + ], timeout=8) + if not send_btn: + raise RuntimeError("未找到“获取验证码”按钮") + + click_safe(send_btn) + print("已点击获取验证码,等待滑块弹窗") + + # 等待验证码弹窗出现 + verify_box = find_first(page, [ + "css:.verifybox", + "css:.verify-bar-area", + ], timeout=6) + if not verify_box: + raise RuntimeError("未检测到滑块验证码弹窗") + + bg_img = find_first(page, ["css:.verify-img-panel img"], timeout=5) + piece_img = find_first(page, ["css:.verify-sub-block img"], timeout=5) + slider = find_first(page, ["css:.verify-move-block"], timeout=5) + bar = find_first(page, ["css:.verify-bar-area"], timeout=5) + + if not bg_img or not piece_img or not slider or not bar: + raise RuntimeError("验证码关键元素缺失(背景图/拼图块/滑块)") + + bg_src = wait_for_data_src(bg_img, timeout=10) + piece_src = wait_for_data_src(piece_img, timeout=10) + + bg_bytes = parse_data_url(bg_src) + piece_bytes = parse_data_url(piece_src) + + if len(bg_bytes) < 100 or len(piece_bytes) < 100: + raise RuntimeError(f"验证码图片数据异常: bg={len(bg_bytes)}B, piece={len(piece_bytes)}B") + + if args.debug_dir: + bg_path, piece_path = save_debug(Path(args.debug_dir), bg_bytes, piece_bytes) + print(f"已保存验证码图片: {bg_path} | {piece_path}") + + match = calc_drag_distance_from_bytes(bg_bytes, piece_bytes, alpha_threshold=args.alpha_threshold) + + # 用渲染宽度做像素→屏幕映射 + bg_display_w = page.run_js( + """const el = arguments[0]; const r = el.getBoundingClientRect(); return r.width;""", + bg_img, + ) + if not bg_display_w or bg_display_w <= 0: + bg_display_w = match["bg_width"] + scale = float(bg_display_w) / max(1, match["bg_width"]) + move_distance = int(round(match["drag_distance"] * scale)) + int(args.distance_adjust) + + print( + "滑块匹配结果: " + f"bg_width={match['bg_width']}, bg_display_w={bg_display_w}, " + f"target_x={match['target_x']}, drag_distance={match['drag_distance']}, " + f"scale={scale:.4f}, move_distance={move_distance}, " + f"confidence={match['confidence_ratio']:.4f}" + ) + + drag_slider(page, slider, move_distance) + time.sleep(args.wait_result) + + elapsed = time.perf_counter() - t_start + print(f"总耗时: {elapsed:.2f} 秒(程序开始 → 滑块滑动完成)") + + # 尝试判断是否通过:遮罩是否消失 + still_visible = page.run_js( + """ + const m = document.querySelector('.mask'); + if (!m) return false; + const s = window.getComputedStyle(m); + return s.display !== 'none' && s.visibility !== 'hidden' && s.opacity !== '0'; + """ + ) + if still_visible: + print("拖动已执行,但验证码弹窗仍在,可能需要微调 --distance-adjust") + else: + print("滑块拖动完成,验证码弹窗已关闭(疑似验证通过)") + + +def build_parser() -> argparse.ArgumentParser: + root = Path(__file__).resolve().parent + p = argparse.ArgumentParser(description="天翼订购页 1.html 自动滑块脚本") + p.add_argument("--url", default="http://yscnb.com/tyyp/1.html", help="目标页面 URL") + p.add_argument("--phone", required=True, help="手机号") + p.add_argument("--port", type=int, default=0, help="连接已有浏览器端口(可选)") + p.add_argument("--skip-agree", action="store_true", help="跳过勾选“同意办理”") + p.add_argument("--alpha-threshold", type=int, default=12, help="拼图 alpha 透明阈值") + p.add_argument("--distance-adjust", type=int, default=0, help="拖动距离微调像素") + p.add_argument("--wait-page", type=float, default=0.3, help="打开页面后等待秒数") + p.add_argument("--wait-result", type=float, default=0.5, help="拖动后等待结果秒数") + p.add_argument("--debug-dir", default=str(root / "captcha_debug"), help="验证码图片输出目录") + return p + + +def main() -> None: + args = build_parser().parse_args() + run(args) + + +if __name__ == "__main__": + main()