|
写这个脚本是因为本人有时候忘记打卡了。开浏览器浏览网页时,习惯开一堆页面,并且浏览器设置了每次打开都会自动打开上一次浏览的记录,论坛就自动登录了。以前登录浏览没有扣家元的规则就无所谓,论坛改规则后,一开始没留意,几个月下来被扣了不少,好几个月才发现登录要扣家元的 。而且连续多天打卡还有不错的奖励,但很多时候就因为忘记了,就断了连续打卡记录,尤其是周末。所以写个脚本,设置一个计划任务,开机就自动打卡,还可以手机设自动任务,或者青龙面板(懂得都懂)。
一共两个文件,一个是python脚本文件,一个用来保存cookie的cookie.txt,cookie可以自己抓包,内容只要 VhUn_2132_saltkey=xxxx14;VhUn_2132_auth=xxxx14 就可以了,这两个值自己替换,保存cookie的文件是记事本文件,文件名是cookie.txt,如果不是,那就自己改代码中的文件名。
python脚本需要安装bs4库和requests库,用pip命令安装,如果是青龙面板,也需要安装这两个依赖,具体安装百度就可以了
脚本实现自动打卡,并访问某个论坛成员的个人空间,打卡可以随机获得1-5家元,访问个人空间可以获得2家元,基本上可以抵消登录的消耗了
下面是代码,需要的可以自己复制到记事本,再另存为 .py 的python脚本文件。后面会附上附件,下载解压后,自己抓包改cookie的值
本人水平有限,脚本还有待修改的地方,不足之处请见谅
#!/usr/bin/env python3
# name: mydigit.py
# author: flyingbird
# charset: utf-8
# time: 2023-8-5
# version 1.0.0
import requests,os,sys
import warnings
from bs4 import BeautifulSoup
warnings.filterwarnings('ignore') #关闭警告
req = requests.Session()
settimeout=10
forum_php='https://www.mydigit.cn/forum.php'
plugin_php='https://www.mydigit.cn/plugin.php'
home_php='https://www.mydigit.cn/home.php'
#读取cookie信息
cookie_path=sys.path[0]+'\cookie.txt'
if os.path.exists(cookie_path):
with open(cookie_path, 'r') as f:
cookie=f.read().strip()
if 'saltkey'.lower() in cookie.lower() or 'auth'.lower() in cookie.lower():
print('获取到正确✅格式的Cookie')
else:
print('未获取到正确✅格式的Cookie')
sys.exit()
else:
print('cookie.txt文件不存在')
sys.exit()
get_header={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.82',
'cookie':cookie
}
response = req.get(forum_php,headers=get_header,timeout=settimeout,verify=False)
bs = BeautifulSoup(response.text, 'lxml')
formhash= bs.find(attrs={'name':'formhash'})['value']
print('获取formhash值:',formhash)
uname=bs.find('strong',class_='vwmy') #查看用户名,看看是否登录
if uname:
print(f'用户{uname.text}已登录')
else:
print('cookie已失效,用户未登录')
print('重新获取cookie后再尝试。。。')
sys.exit()
sign_params={
'id':'k_misign:sign',
'operation':'qiandao',
'formhash':formhash,
'format':'empty',
'inajax':'1',
'ajaxtarget':''
}
response = req.get(plugin_php,params=sign_params,headers=get_header,timeout=settimeout,verify=False)
if '[CDATA[]]' in response.text:
print('签到成功!')
else:
print('签到失败,请手动签到!')
sys.exit()
signlist_params={
'id':'k_misign:sign',
'operation':'list',
'inajax':'1',
'ajaxtarget':'ranklist'
}
signlist_header=get_header.copy()
response = req.get(plugin_php,headers=get_header,timeout=settimeout,verify=False,params=signlist_params)
bs = BeautifulSoup(response.text, 'lxml')
table= bs.table
for a in table.find_all('a'):
if a.text!=uname:
link=a['href']
space_uid=link.replace('space-uid-','').replace('.html','')
print('找到用户:',a.text)
break
else:
print('未找到可以获取家元的用户')
sys.exit()
if space_uid!='':#直接进入个人资料,获取2家元
space_u_params={
'mod':'space',
'uid':space_uid,
'do':'profile',
'from':'space'
}
space_u_header=get_header.copy()
print('进入个人空间')
response = req.get(home_php,headers=get_header,params=space_u_params,timeout=settimeout,verify=False)
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|