New Content Summary: This script automates the International Taishan Network login and check-in process. It uses requests.Session() to manage cookies and headers, sending GET requests to login and check-in APIs. The main functions handle session initialization, user login with credentials, and sign-in execution, reporting success or failure.
阿里云:
服务器购买地址
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=2019052.部署教程
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": "http://www.taishan.ccoo.cn/","Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8","Upgrade-Insecure-Requests": "1"}}# 核心接口地址(抓包确认的真实接口)API_URLS = {"login": "http://www.taishan.ccoo.cn/index.php?m=user&c=login&a=dosubmit", # 登录接口"sign": "http://www.taishan.ccoo.cn/index.php?m=user&c=score&a=sign" # 签到接口}def init_session():"""初始化请求会话作用:创建带Cookie维护的Session,预加载网站基础Cookie"""session = requests.Session()session.headers.update(CONFIG["headers"])# 先访问首页,获取网站初始化Cookie(避免登录被拦截)try:# 关闭SSL验证(部分老网站证书可能有问题)session.get("http://www.taishan.ccoo.cn/", verify=False, timeout=15)print(f"【{datetime.now()}】会话初始化成功")return sessionexcept Exception as e:print(f"【{datetime.now()}】会话初始化失败:{str(e)}")return Nonedef user_login(session):"""国际台山网登录函数参数:初始化后的session对象返回:登录成功返回session,失败返回None"""if not session:return None# 构造登录参数(CCOO平台标准登录参数)login_params = {"username": CONFIG["username"],"password": CONFIG["password"],"ajax": "1" # 标识为AJAX登录请求}try:# 发送登录请求(该网站登录为GET请求)response = session.get(url=API_URLS["login"],params=login_params,verify=False,timeout=15)# 解析登录响应(该网站返回JSON格式)result = response.json()if result.get("error") == 0:print(f"【{datetime.now()}】登录成功!{result.get('msg', '登录成功')}")return sessionelse:print(f"【{datetime.now()}】登录失败:{result.get('msg', '账号或密码错误')}")return Noneexcept json.JSONDecodeError:print(f"【{datetime.now()}】登录响应解析失败,响应内容:{response.text}")return Noneexcept Exception as e:print(f"【{datetime.now()}】登录请求异常:{str(e)}")return Nonedef do_sign(session):"""执行签到操作参数:登录成功后的session对象返回:签到成功返回True,失败返回False"""if not session:print(f"【{datetime.now()}】未完成登录,无法签到")return Falsetry:# 发送签到请求(该网站签到为GET请求)sign_response = session.get(url=API_URLS["sign"],verify=False,timeout=15)# 解析签到结果(该网站签到返回HTML/JSON混合,需适配)sign_text = sign_response.text.strip()if "签到成功" in sign_text or "今日已签到" in sign_text or "积分" in sign_text:print(f"【{datetime.now()}】签到操作完成!结果:{sign_text[:100]}") # 截取前100字符避免输出过长return Trueelse:print(f"【{datetime.now()}】签到失败,响应内容:{sign_text[:100]}")return Falseexcept Exception as e:print(f"【{datetime.now()}】签到请求异常:{str(e)}")return Falseif __name__ == "__main__":"""脚本主入口:串联初始化→登录→签到流程"""print("===== 国际台山网自动签到脚本 =====")# 1. 初始化会话session = init_session()if not session:exit(1)# 2. 账号登录login_session = user_login(session)# 3. 执行签到if login_session:do_sign(login_session)print("===== 脚本执行结束 =====")
该脚本是针对国际台山网定制的自动签到工具,核心作用是替代人工完成该网站的 "登录→签到" 全流程:无需手动打开网页、输入账号密码登录,也无需手动查找并点击签到按钮,脚本会自动模拟浏览器的请求行为,完成身份验证后执行签到操作,最终反馈签到结果(成功 / 失败 / 已签到)。
主要方法
init_session()方法:核心作用是初始化一个能维护登录状态的请求会话。首先创建
requests.Session()对象,该对象的核心优势是能自动保存和携带 Cookie,确保后续登录、签到请求的身份连续性;接着为会话统一设置模拟真实浏览器的请求头,避免被网站识别为爬虫;最后主动访问国际台山网首页,获取网站初始化的基础 Cookie(老网站常依赖这些 Cookie 做访问验证),同时关闭 SSL 验证(解决部分老网站证书无效导致的请求失败问题)。如果初始化过程中出现网络超时、连接失败等问题,会输出明确的错误提示并返回 None。user_login(session)方法:作用是完成国际台山网的账号登录验证。该方法接收初始化后的会话对象作为参数,首先校验会话是否有效,无效则直接返回 None;接着构造 CCOO 平台标准的登录参数(包含账号、密码、AJAX 请求标识),并向登录接口发送 GET 请求(该网站登录接口为 GET 而非常见的 POST);请求完成后解析接口返回的 JSON 响应,通过
error字段判断登录状态:error=0代表登录成功,此时会话会自动保存登录 Cookie,同时输出成功提示;若error≠0则输出具体的失败原因(如账号密码错误);针对 JSON 解析失败、请求超时等异常,也会针对性输出错误信息,保证脚本的健壮性。do_sign(session)方法:作用是执行实际的签到操作。该方法接收登录成功后的会话对象作为参数,首先校验登录状态,未登录则提示并返回 False;接着向签到接口发送 GET 请求(该网站签到接口为 GET 请求,无额外参数,仅依赖登录 Cookie 验证身份);由于该网站签到响应为 HTML/JSON 混合格式,脚本通过关键词("签到成功""今日已签到""积分")判断签到结果,避免因格式不标准导致解析失败;最后输出签到结果(成功 / 失败),并返回布尔值标识操作状态,同时捕获所有请求异常,保证脚本不会因接口响应异常中断。
主入口(
__main__):作为脚本的启动入口,核心作用是按 "初始化会话→账号登录→执行签到" 的逻辑有序串联所有方法。首先输出脚本启动提示,然后调用
init_session()初始化会话,若初始化失败则直接退出脚本;会话初始化成功后调用user_login()完成登录;登录成功后再调用do_sign()执行签到;最后输出脚本执行结束的提示,整体流程清晰,便于理解和后续修改。
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论