2026年2月11日星期三

New Huanqiu。com Automated Check-in Script Guide and Code

New Summary: A Python script for Huanqiu.com auto check-in. It manages login state and tries to find/click check-in/points buttons, reporting success or failure. Includes server setup links and deployment tutorial. For educational use.

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 HuanQiuSigner:
    HOME = "https://www.huanqiu.com/"    STATE_PATH = Path("huanqiu_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}"),            ]            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
        # 尝试点登录(环球网评论页可见"登录环球网|社交账号登录"入口)        self._click_by_keywords(page, ["登录""登录环球网""社交账号登录""账号登录""立即登录"])        page.wait_for_timeout(1200)
        print("[login] 请在打开的浏览器里手动完成登录(如出现风控/验证码请正常验证)。")        input("      登录完成后回到终端按回车继续...")
        context.storage_state(path=str(self.STATE_PATH))        print(f"[login] 登录态已保存:{self.STATE_PATH.resolve()}")
    def try_checkin(self, page) -> bool:        """        尝试寻找"签到/福利/任务/积分"入口:        1) 先在首页/顶部找"我的/个人中心"        2) 再找"福利/任务/积分/活动"        3) 最后找"签到/打卡/领取"        """        # Step 1: 个人入口        self._click_by_keywords(page, ["我的""个人中心""账号""头像""用户中心"])        page.wait_for_timeout(1200)
        # Step 2: 福利/任务        self._click_by_keywords(page, ["福利""任务""积分""活动中心""会员""兑换"])        page.wait_for_timeout(1200)
        # Step 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] 未找到网页端'签到/福利/任务'入口。")        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)
                # 保存最新 token/cookie(避免刷新后丢失)                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__":    # 可视化跑,方便你看到是否有"已签到/领取成功"    HuanQiuSigner(headless=False, slow_mo_ms=50).run()
解析

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

  1. 打开环球网并复用登录态:首次你手动登录一次,脚本保存 huanqiu_storage_state.json,后续运行直接复用。 

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

  3. 如果站点无网页端签到会明确输出提示,而不是静默失败。

主要方法

  • ensure_login(page, context):进入首页 → 尝试点击"登录" → 你手动完成登录 → 保存登录态文件。

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

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


注意

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


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

没有评论:

发表评论

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

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