2026年2月11日星期三

Hongxiu。com Auto Check-in Script Summary

Summary: A script automates daily check-in on hongxiu.com. It uses saved login state after initial manual login, navigates to rewards/tasks section via keyword matching, and attempts to click check-in buttons. It outputs success status.

1.购买服务器

阿里云:

服务器购买地址

https://t.aliyun.com/U/G61mcO

若失效,可用地址

https://www.aliyun.com/benefit?source=5176.29345612&userCode=49hts92d

腾讯云:

https://curl.qcloud.com/wJpWmSfU

若失效,可用地址

https://cloud.tencent.com/act/cps/redirect?redirect=2446&cps_key=ad201ee2ef3b771157f72ee5464b1fea&from=console

华为云

https://activity.huaweicloud.com/cps.html?fromacct=64b5cf7cc11b4840bb4ed2ea0b2f4468&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905

2.部署教程

2024年最新青龙面板跑脚本教程(一)持续更新中

3.代码如下

import refrom pathlib import Pathfrom playwright.sync_api import sync_playwright, TimeoutError as PWTimeoutError

class HongXiuSigner:
    HOME = "https://www.hongxiu.com/"    STATE_PATH = Path("hongxiu_storage_state.json")
    def __init__(self, headless: bool = False, slow_mo_ms: int = 50):        self.headless = headless        self.slow_mo_ms = slow_mo_ms
    @staticmethod    def _click_by_keywords(page, keywords, timeout_ms=3000) -> bool:        """        依次尝试点击包含关键词的元素(按钮/链接/文本),命中一个就返回 True        """        for kw in keywords:            locators = [                page.get_by_role("button", name=re.compile(kw)),                page.get_by_role("link", name=re.compile(kw)),                page.locator(f"text={kw}"),            ]            for loc in locators:                try:                    if loc.first.is_visible(timeout=timeout_ms):                        loc.first.click(timeout=timeout_ms)                        return True                except Exception:                    continue        return False
    @staticmethod    def _looks_logged_in(page) -> bool:        """        粗判断登录态:页面出现"退出/我的/个人中心/消息/书架/账号"等字样通常表示已登录        """        html = page.content()        return any(k in html for k in ["退出""我的""个人中心""消息""书架""账号""已登录"])
    def ensure_login(self, page, context) -> None:        """        打开首页 -> 若未登录,引导手动登录 -> 保存登录态        """        page.goto(self.HOME, wait_until="domcontentloaded")        page.wait_for_timeout(1000)
        if self._looks_logged_in(page):            print("[login] 看起来已处于登录状态。")            return
        # 尝试点击"登录/立即登录"        self._click_by_keywords(page, ["登录""立即登录""账号登录""登录/注册""注册/登录"])        page.wait_for_timeout(1000)
        print("[login] 请在打开的浏览器中手动完成登录(如出现验证码/风控请正常验证)。")        input("      登录完成后回到终端按回车继续...")
        # 保存最新登录态        context.storage_state(path=str(self.STATE_PATH))        print(f"[login] 登录态已保存:{self.STATE_PATH.resolve()}")
    def do_checkin(self, page) -> bool:        """        尝试在网页端完成"签到/福利/任务/领奖"        - 先尝试去"我的/个人中心"        - 再尝试"福利/任务/活动/积分"        - 最后点"签到/打卡/领取/领奖"        """        # 1) 先找"我的/个人中心"        self._click_by_keywords(page, ["我的""个人中心""用户中心""账号""头像"])        page.wait_for_timeout(1200)
        # 2) 再找"福利/任务/活动"        self._click_by_keywords(page, ["福利""任务""活动中心""积分""领奖""新手福利"])        page.wait_for_timeout(1200)
        # 3) 重点:签到/打卡/领取        clicked = self._click_by_keywords(page, ["签到""打卡""去签到""立即签到""领取""领奖""一键领取"], timeout_ms=4000)        page.wait_for_timeout(1200)
        html = page.content()        if any(k in html for k in ["已签到""签到成功""今日已签到""领取成功""已领取"]):            print("[checkin] 页面显示疑似:已签到/签到成功/已领取。")            return True
        if clicked:            print("[checkin] 已执行点击动作,但未识别到明确成功提示;建议肉眼确认页面状态。")            return True
        print("[checkin] 未找到"签到/福利/任务/领奖"入口(可能网页端无签到,或入口在 App)。")        return False
    def run(self) -> None:        with sync_playwright() as p:            browser = p.chromium.launch(headless=self.headless, slow_mo=self.slow_mo_ms)            context = browser.new_context(                storage_state=str(self.STATE_PATH) if self.STATE_PATH.exists() else None            )            page = context.new_page()
            try:                self.ensure_login(page, context)
                # 做签到                ok = self.do_checkin(page)
                # 刷新/保存登录态(避免 token 更新后丢失)                context.storage_state(path=str(self.STATE_PATH))                print("[done] 结束。结果:""已尝试签到" if ok else "未完成签到")
            except PWTimeoutError as e:                print("[error] 页面等待超时:", e)            finally:                context.close()                browser.close()

if __name__ == "__main__":    # headless=False:可视化运行,便于你看到是否已签到    HongXiuSigner(headless=False, slow_mo_ms=50).run()
解析

该脚本为红袖添香自动签到脚本,主要作用包括:

  1. 打开红袖添香网页并复用登录态:首次手动登录一次后保存 hongxiu_storage_state.json,以后每天运行无需再登录。

  2. 自动寻找"福利/任务/签到/领奖"入口并点击:用关键词匹配,适配页面小改版。

  3. 输出日志:告诉你是"成功/已点击/未签到"。

主要方法

  • ensure_login(page, context):打开首页 → 判断是否已登录 → 若未登录引导你手动登录 → 保存登录态文件。

  • do_checkin(page):依次尝试进入"我的/个人中心 → 福利/任务 → 签到/领奖",并根据页面文案判断是否成功。

  • run():串联流程并在结束时保存最新登录态。


注意

本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。


历史脚本txt文件获取>>
服务器搭建,人工服务咨询>>

没有评论:

发表评论

让客户“感觉赚到”才是成交关键

本文揭示商业核心并非低价,而是让客户感知"占便宜"。通过直播带货、价格锚点等案例,剖析如何利用人性贪欲设计交易,在保障质量前提下,用心理战提升溢价与成交率。 最好的成交技巧,从来不是把价格降到最低,而是让客户觉得自己"赚了"。 请注意我...