|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
大家好,分享一个FishC论坛的自动签到Python脚本。
原理很简单:
1. 登录 - 先GET拿formhash,再POST用户名密码
2. 签到 - 访问签到插件k_misign,调用签到API
3. 定时 - cron每天自动执行
【完整代码】
import re
import requests
from datetime import datetime
USERNAME = "你的用户名"
PASSWORD = "你的密码"
BASE_URL = "https://fishc.com.cn"
session = requests.Session()
session.headers["User-Agent"] = "Mozilla/5.0"
def login():
r = session.get(BASE_URL + "/member.php?mod=logging&action=login")
m = re.search(r'name="formhash" value="([a-f0-9]+)"', r.text)
if not m: return False
formhash = m.group(1)
data = {"formhash": formhash, "username": USERNAME,
"password": PASSWORD, "loginsubmit": "yes",
"loginfield": "username", "questionid": "0", "answer": ""}
r = session.post(BASE_URL +
"/member.php?mod=logging&action=login&loginsubmit=yes&inajax=1",
data=data)
r.encoding = "gbk"
return "欢迎" in r.text
def sign_in():
r = session.get(BASE_URL + "/plugin.php?id=k_misign:sign")
m = re.search(r'formhash=([a-f0-9]+)', r.text)
if not m: return False
formhash = m.group(1)
api = (BASE_URL + "/plugin.php?id=k_misign:sign"
+ "&operation=qiandao&formhash=" + formhash
+ "&format=empty&inajax=1")
r = session.get(api, headers={"Referer":
BASE_URL + "/plugin.php?id=k_misign:sign"})
r.encoding = "gbk"
return "已签" in r.text or "成功" in r.text
if __name__ == "__main__":
print("FishC签到 " + datetime.now().strftime("%m-%d %H:%M"))
if login():
print("登录成功")
sign_in()
else:
print("登录失败")
【使用方法】
pip install requests
# 添加到crontab,每天8点执行
# 0 8 * * * python3 fishc_signin.py
【注意】
- FishC用GBK编码,response要设encoding="gbk"
- formhash每次动态生成,必须从页面实时提取
- 签到API加inajax=1拿干净结果
代码纯requests+re,不到60行,欢迎自取~ |
|