2026年2月19日星期四

Weidian Reading Auto-Sign Script : Setup Guide and Code

This script automates daily sign-in for Weidian Reading. It includes server purchase links (Alibaba, Tencent, Huawei Cloud), a deployment tutorial for Qinglong Panel, and Python code. The code handles login and sign-in via HTTP requests with session management, error handling, and logging. It's designed for personal automation, not commercial 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 requestsimport jsonfrom datetime import datetime# 配置区 - 请替换为你的实际信息CONFIG = {    # 你的账号信息(手机号/用户名)    "username""你的唯典阅读账号",    "password""你的唯典阅读密码",    # 请求头:模拟浏览器访问,避免被识别为爬虫    "headers": {        "User-Agent""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",        "Referer""https://www.weidianyuedu.com/",        "Origin""https://www.weidianyuedu.com",        "Accept""application/json, text/plain, */*",        "Content-Type""application/x-www-form-urlencoded; charset=UTF-8"    }}# 核心接口地址(已通过抓包确认)API_URLS = {    "login""https://www.weidianyuedu.com/api/user/login",  # 登录接口    "sign""https://www.weidianyuedu.com/api/user/signIn"   # 签到接口}def get_session():    """    创建并初始化requests会话对象    作用:自动维护Cookie,确保登录状态不丢失    """    session = requests.Session()    session.headers.update(CONFIG["headers"])    # 先访问首页,获取必要的初始化Cookie    try:        session.get("https://www.weidianyuedu.com/")        return session    except Exception as e:        print(f"【{datetime.now()}】初始化会话失败:{str(e)}")        return Nonedef login(session):    """    唯典阅读登录函数    参数:初始化后的session对象    返回:登录成功返回session,失败返回None    """    if not session:        return None
    # 构造登录参数(抓包确认的参数格式)    login_data = {        "username": CONFIG["username"],        "password": CONFIG["password"],        "rememberMe""true"  # 记住登录状态    }
    try:        # 发送登录请求        response = session.post(            url=API_URLS["login"],            data=login_data,            timeout=10        )        # 解析登录响应        result = response.json()        if result.get("code") == 200 and result.get("msg") == "success":            print(f"【{datetime.now()}】登录成功!用户ID:{result.get('data', {}).get('userId')}")            return session        else:            print(f"【{datetime.now()}】登录失败:{result.get('msg''未知错误')}")            return None    except json.JSONDecodeError:        print(f"【{datetime.now()}】登录响应解析失败,响应内容:{response.text}")        return None    except Exception as e:        print(f"【{datetime.now()}】登录请求异常:{str(e)}")        return Nonedef sign_in(session):    """    唯典阅读签到函数    参数:登录成功后的session对象    返回:签到成功返回True,失败返回False    """    if not session:        print(f"【{datetime.now()}】未登录,无法执行签到")        return False
    try:        # 发送签到请求(该接口为POST,无额外参数)        response = session.post(            url=API_URLS["sign"],            timeout=10        )        # 解析签到结果        result = response.json()        if result.get("code") == 200:            print(f"【{datetime.now()}】签到成功!{result.get('msg''')},获得积分:{result.get('data', {}).get('score', 0)}")            return True        else:            print(f"【{datetime.now()}】签到失败:{result.get('msg''未知错误')}")            return False    except json.JSONDecodeError:        print(f"【{datetime.now()}】签到响应解析失败,响应内容:{response.text}")        return False    except Exception as e:        print(f"【{datetime.now()}】签到请求异常:{str(e)}")        return Falseif __name__ == "__main__":    """脚本主入口:串联初始化→登录→签到流程"""    print("===== 唯典阅读自动签到脚本 =====")    # 1. 初始化会话    session = get_session()    if not session:        exit(1)    # 2. 登录    login_session = login(session)    # 3. 签到    if login_session:        sign_in(login_session)    print("===== 脚本执行结束 =====")
 解析

该脚本是针对唯典阅读定制开发的自动签到工具,核心作用是完全替代人工操作完成 "登录→签到" 的全流程:无需手动打开网页、输入账号密码登录,也无需手动点击签到按钮,脚本会自动完成身份验证并执行签到操作,最终获取签到对应的积分或奖励。同时脚本支持结合系统定时任务(如 Windows 任务计划、Linux crontab)实现每日自动签到,且内置了完善的异常处理逻辑,避免因网络波动、接口响应异常等问题导致脚本崩溃。

主要方法

  • get_session()方法:

  • 核心作用是初始化并创建一个可维护状态的请求会话对象。首先会创建requests.Session()对象,这个对象的关键特性是能自动保存和携带 Cookie,保证后续登录、签到请求的身份连续性;其次会为会话统一设置模拟真实浏览器的请求头,避免被网站识别为爬虫;最后会先访问唯典阅读首页,获取网站初始化的基础 Cookie,为后续登录请求做准备,降低登录被拦截的概率。如果初始化过程中出现网络异常等问题,会输出明确的错误提示并返回 None。

  • login(session)方法:

  • 作用是完成唯典阅读账号的登录验证。该方法接收初始化后的会话对象作为参数,首先会校验会话是否有效,无效则直接返回 None;接着构造登录接口要求的参数(包含账号、密码、记住登录状态的标识),并向唯典阅读的登录接口发送 POST 请求;请求完成后会解析接口的 JSON 响应,通过响应码和提示信息判断登录是否成功:登录成功时,会话对象会自动保存登录后的身份 Cookie,同时输出登录成功的提示和用户 ID;登录失败时会输出具体的失败原因(如账号密码错误);如果出现响应解析异常、请求超时等问题,也会针对性输出错误信息,保证脚本的健壮性。

  • sign_in(session)方法:

  • 作用是执行实际的签到操作。该方法接收登录成功后的会话对象作为参数,首先校验会话是否有效(即是否完成登录),未登录则提示并返回 False;接着向唯典阅读的签到接口发送 POST 请求,该接口无需额外参数,仅通过会话中携带的登录 Cookie 完成身份验证;请求完成后解析响应结果,若响应码为 200 则判定签到成功,输出成功提示并展示获得的积分;若响应码异常则输出失败原因;同时会捕获 JSON 解析失败、请求超时等异常,避免脚本因接口响应格式变化或网络问题中断,最终返回布尔值标识签到是否成功。

  • 主入口(__main__):

  • 作为脚本的启动入口,核心作用是按 "初始化会话→登录→签到" 的逻辑串联所有方法,保证流程的有序执行。首先输出脚本启动提示,然后调用get_session()初始化会话,若初始化失败则直接退出脚本;会话初始化成功后调用login()完成登录;登录成功后再调用sign_in()执行签到;最后输出脚本执行结束的提示,整体逻辑清晰,便于理解和维护。


注意

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


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

没有评论:

发表评论

Weidian Reading Auto-Sign Script : Setup Guide and Code

This script automates daily sign-in for Weidian Reading. It includes server purchase links (Alibaba, Tencent, Huawei Cloud), a deployment tu...