数码之家

 找回密码
 立即注册
搜索
查看: 2722|回复: 39

[软件] 用python写一个论坛的自动签到脚本

[复制链接]
发表于 2023-8-22 19:50:24 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
写这个脚本是因为本人有时候忘记打卡了。开浏览器浏览网页时,习惯开一堆页面,并且浏览器设置了每次打开都会自动打开上一次浏览的记录,论坛就自动登录了。以前登录浏览没有扣家元的规则就无所谓,论坛改规则后,一开始没留意,几个月下来被扣了不少,好几个月才发现登录要扣家元的。而且连续多天打卡还有不错的奖励,但很多时候就因为忘记了,就断了连续打卡记录,尤其是周末。所以写个脚本,设置一个计划任务,开机就自动打卡,还可以手机设自动任务,或者青龙面板(懂得都懂)。
一共两个文件,一个是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)



py-login.rar

1.53 KB, 下载次数: 3, 下载积分: 家元 -55

售价: 10 家元  [记录]

脚本和cookie文件,自行抓包改cookie值

发表于 2023-8-22 22:52:02 | 显示全部楼层
不管有没有用,先保存下来再说
回复 支持 反对

使用道具 举报

发表于 2023-8-22 22:54:20 | 显示全部楼层
先收下了,谢谢楼主
回复 支持 反对

使用道具 举报

发表于 2023-8-23 09:06:33 | 显示全部楼层
学习了,,看看这么搞
回复 支持 反对

使用道具 举报

发表于 2023-8-24 09:08:26 | 显示全部楼层
不管有没有用,先保存下来再说
回复 支持 反对

使用道具 举报

发表于 2023-8-24 09:26:42 | 显示全部楼层
不管有没有用,先保存下来再说
回复 支持 反对

使用道具 举报

发表于 2023-8-24 10:25:18 | 显示全部楼层

不管有没有用,先保存下来再说
回复 支持 反对

使用道具 举报

发表于 2023-8-24 10:36:10 | 显示全部楼层
不错,光打卡不发消息还是得倒贴家园给论坛。
回复 支持 反对

使用道具 举报

发表于 2023-9-6 01:22:23 | 显示全部楼层
没啥用,签到的还没扣的多,不如多回复几条帖子
回复 支持 1 反对 0

使用道具 举报

发表于 2023-9-6 09:26:38 | 显示全部楼层
先收下了,谢谢楼主
回复 支持 反对

使用道具 举报

发表于 2023-9-6 10:21:41 | 显示全部楼层
这个绝对牛X,支持楼主一下。
回复 支持 反对

使用道具 举报

发表于 2023-9-6 11:15:53 | 显示全部楼层
先保存下来再说
回复 支持 反对

使用道具 举报

发表于 2023-9-6 23:46:28 | 显示全部楼层
收下了,起码不会漏签
回复 支持 反对

使用道具 举报

发表于 2023-9-6 23:51:13 | 显示全部楼层
不知道怎么用。
回复 支持 反对

使用道具 举报

发表于 2023-9-8 10:57:14 | 显示全部楼层

不管有没有用,先保存下来再说
回复 支持 反对

使用道具 举报

发表于 2023-9-9 08:52:18 | 显示全部楼层
cookie没有时效吗?
回复 支持 反对

使用道具 举报

发表于 2023-9-10 06:42:08 | 显示全部楼层
大佬喝茶,大佬再见
回复 支持 反对

使用道具 举报

发表于 2023-9-12 14:08:25 | 显示全部楼层
不知道怎么用,先保存再说。漏签了好几次了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-28 18:51 , Processed in 0.156001 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表