2026年2月14日星期六

China。com Auto-signin Script : Setup, Login, Check-in Instructions

This script automates China.com sign-in tasks. Steps: 1) Purchase cloud server (Alibaba/Tencent/Huawei). 2) Deploy Qinglong Panel. 3) Run the script: auto-login (saves session), detects/ clicks check-in buttons. Manual login first time. For learning only.

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 ChinaComSigner:
    HOME = "https://www.china.com/"    PASSPORT = "https://passport.china.com/"    STATE_PATH = Path("china_com_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 _looks_logged_in(page) -> bool:        """粗判断登录态:出现'退出/我的/个人中心/账号'等字样通常代表已登录。"""        html = page.content()        return any(k in html for k in ["退出""注销""我的""个人中心""账号""已登录""欢迎"])
    @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}"),                page.locator(f"input[value*='{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
    def ensure_login(self, page, context) -> None:        """        打开中华网首页 -> 若未登录,引导手动登录(可能跳到通行证)-> 保存登录态        """        page.goto(self.HOME, wait_until="domcontentloaded")        page.wait_for_timeout(1200)
        if self._looks_logged_in(page):            print("[login] 看起来已经登录(将直接尝试签到/福利)。")            return
        # 尝试点击站内"登录/通行证"        clicked = self._click_by_keywords(page, ["登录""中华网通行证""通行证""账号登录"])        page.wait_for_timeout(1000)
        # 如果没点到,直接打开通行证页(让你手动登录)        if not clicked:            page.goto(self.PASSPORT, wait_until="domcontentloaded")            page.wait_for_timeout(1000)
        print("[login] 请在打开的浏览器里手动完成登录(如出现验证码/风控请正常验证)。")        input("      登录完成后回到终端按回车继续...")
        context.storage_state(path=str(self.STATE_PATH))        print(f"[login] 登录态已保存:{self.STATE_PATH.resolve()}")
    def try_checkin(self, page) -> bool:        """        自动探测"签到/福利/任务/积分/领取"入口并点击        """        # 从首页开始        page.goto(self.HOME, wait_until="domcontentloaded")        page.wait_for_timeout(1200)
        # 先找"我的/个人中心"等入口(若存在)        self._click_by_keywords(page, ["我的""个人中心""用户中心""会员中心""账号""头像"])        page.wait_for_timeout(1200)
        # 再找"福利/任务/积分/活动"        self._click_by_keywords(page, ["福利""任务""积分""活动中心""兑换""签到"])        page.wait_for_timeout(1200)
        # 最后找"签到/打卡/领取"        clicked = self._click_by_keywords(            page,            ["立即签到""去签到""签到""打卡""领取""领奖""一键领取""今日签到""已签到"],            timeout_ms=4000,        )        page.wait_for_timeout(1500)
        html = page.content()        if any(k in html for k in ["已签到""签到成功""今日已签到""领取成功""已领取"]):            print("[checkin] 页面显示疑似:已签到/签到成功/已领取。")            return True
        if clicked:            print("[checkin] 已执行点击动作,但未识别到明确成功提示;建议你肉眼确认页面状态。")            return True
        print("[checkin] 未在网页端发现明显"签到/福利/任务/积分"入口。")        print("          可能原因:1) 中华网网页端无签到;2) 签到在 App/子产品;3) 需要进入特定频道/产品页。")        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.try_checkin(page)
                # 保存最新状态(cookie/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__":    # 可视化运行更方便确认结果    ChinaComSigner(headless=False, slow_mo_ms=50).run()
解析

该脚本为中华网自动签到脚本,主要作用包括:

  1. 完成中华网登录态复用:首次你手动登录(通常走"中华网通行证"体系),脚本把登录态保存到 china_com_storage_state.json,后续运行免登录。

  2. 自动探测并尝试"签到/福利/任务/积分/领取"入口:脚本会自动点击并尝试完成。

  3. 找不到入口会明确提示:避免脚本"跑完了但没做事"的假象。

主要方法

  • ensure_login(page, context):打开中华网/通行证页 → 你手动登录一次 → 保存登录态文件。

  • try_checkin(page):从首页开始,按"个人入口 → 福利/任务 → 签到/领取"顺序做关键词点击探测。

  • run():串起流程并在结束时保存最新登录态(防止 token 刷新后丢失)。


注意

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


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

没有评论:

发表评论

China。com Auto-signin Script : Setup, Login, Check-in Instructions

This script automates China.com sign-in tasks. Steps: 1) Purchase cloud server (Alibaba/Tencent/Huawei). 2) Deploy Qinglong Panel. 3) Run th...