吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2147|回复: 22
收起左侧

[Python 原创] python新人,远景论坛签到脚本

  [复制链接]
yuanxinjie 发表于 2023-4-22 13:38
本帖最后由 yuanxinjie 于 2023-4-26 16:48 编辑

去年学测试,顺带学了点python,找不到工作闲着没事写点脚本练手
我自己挂到青龙运行个把月了

更新一下:
完善接入青龙面板,cookie值换用环境变量方式添加,添加青龙通知推送接口,代码已在仓库更新
仓库地址:iXinjie/qlScripts (github.com)

个别账号回复帖子需要验证码的情况我还解决不了,就只能实现自动打卡,将回复帖子的执行函数删掉即可
需要填一下里面的Cookie,格式就是下图这样

就是saltkey和auth这两个值,自己去抓一下,前缀不知道每个账号是不是一样的

我也只会点基础用法,还请大家指点
[Python] 纯文本查看 复制代码
"""
cron: 0 0 8 ? * *
new Env('远景论坛签到');
"""
import requests
from datetime import datetime
import time
import re

cookies = "jqCP_887f_saltkey=; jqCP_887f_auth="
pcUrl = "https://i.pcbeta.com/home.php?mod=task&do=apply&id=149"
pcHeaders = {
    "Host": "i.pcbeta.com",
    "Connection": "keep-alive",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
    "Cookie": cookies
}

pcbbsHeaders = {
    "Host": "bbs.pcbeta.com",
    "Connection": "keep-alive",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
    "Cookie": cookies
}


# 领取奖励链接
lqurl = "https://i.pcbeta.com/home.php?mod=task&do=draw&id="
# 获取新任务链接
newUrl = "https://i.pcbeta.com/home.php?mod=task&item=new"
# 查看已完成任务链接
doneUrl = "https://i.pcbeta.com/home.php?mod=task&item=done"
# 获取签到状态信息
newTaskRes = requests.get(url=newUrl,headers=pcHeaders).text
doneTaskRes = requests.get(url=doneUrl, headers=pcHeaders).text
doingRes = requests.get("https://i.pcbeta.com/home.php?mod=task&item=doing",headers=pcHeaders)


def writeLog(file):
    time = datetime.now().strftime("%Y-%m-%d %H-%M-%S")
    with open(f"./log/pcBetalog-{time}.html", "w") as f:
        f.write(file)

def pcbetaCheckin():
    import time
    id = "149"
    if "每日打卡" in newTaskRes:
        # 开始执行签到
        taskRes = requests.get(url=pcUrl, headers=pcHeaders).text
        if "抱歉,本期您已申请过此任务,请下期再来" in taskRes:
            return "已签到,请勿重复签到"
        elif "恭喜您,任务已成功完成" in taskRes:
            return "签到成功"
        else:
            time.sleep(1)
            lqRes = requests.get(url=lqurl+id, headers=pcHeaders).text
            if "任务已成功完成" in lqRes:
                return "签到成功,PB币+1"

            if "不是进行中的任务" in lqRes:
                # 检查是否签到成功
                doneTaskRes_check = requests.get(url=doneUrl, headers=pcHeaders).text
                if "每日打卡" in doneTaskRes_check:
                    return "签到已完成"
                else:
                    return "签到失败"
            else:
                writeLog(lqRes)
                return "签到失败,具体情况请查看日志"
    elif "每日打卡" in doneTaskRes:
        return "今日已签到,重复签到"

def getTaskUrl():
    # 获取任务贴URL
    viewRes = requests.get(url=f"https://i.pcbeta.com/home.php?mod=task&do=view&id={idd}", headers=pcHeaders)
    tieUrl = re.search(r'在“<a href="(.+?)">', viewRes.text).group(1)
    replyRes = requests.get(url=tieUrl,headers=pcbbsHeaders)
    # 获取fid
    fid = re.search(r'fid=(.+?)&', replyRes.text).group(1)
    # 获取tid
    tid = re.search(r'tid=(.+?)&', replyRes.text).group(1)
    formhash = re.search(r'formhash=(.+?)&', replyRes.text).group(1)
    replyUrl = f"https://bbs.pcbeta.com/forum.php?mod=post&action=reply&fid={fid}&tid={tid}&extra=page=1&replysubmit=yes&infloat=yes&handlekey=fastpost&inajax=1"
    return replyUrl,formhash

def getTaskID():
    news = requests.get(url=newUrl,headers=pcHeaders).text
    idd = re.search('id=(.+?)">回帖打卡', news).group(1)
    return idd

def pcbetaReply():
    taskName = "回帖打卡福利"
    if taskName in newTaskRes:
        # 获取任务id
        global idd
        idd = getTaskID()
        # 申请回帖打卡任务
        reRes = requests.get(url=f"https://i.pcbeta.com/home.php?mod=task&do=apply&id={idd}", headers=pcHeaders)
        if "任务申请成功" in reRes.text:
            result = getTaskUrl()
            # 回复帖子
            data = {"message":"%C3%BF%C8%D5%B4%F2%BF%A8%C7%A9%B5%BD",
                    "posttime":int(time.time()),
                    "formhash": result[1],
                    "subject":"",
                    "usesig":"1"}
            resRes = requests.post(url=result[0], headers=pcbbsHeaders, data=data)
            if "回复发布成功" in resRes.text:
                # 领取奖励
                lqRes1 = requests.get(url=lqurl+idd,headers=pcHeaders)
                # 获取任务状态
                doneTaskRes1 = requests.get(url=doneUrl, headers=pcHeaders)
                if taskName in doneTaskRes1.text:
                    return "打卡成功,PB币+2"
                else:
                    writeLog(lqRes1.text)
                    return "奖励领取失败"
            else:
                writeLog(resRes.text)
                return "回帖失败"
        else:
            writeLog(reRes.text)
            return "打卡任务申请失败"

    elif taskName in doneTaskRes:
        return "打卡已完成,重复打卡"

    elif taskName in doingRes.text:
        result = getTaskUrl()
        # 回复帖子
        data = {"message":"%C3%BF%C8%D5%B4%F2%BF%A8%C7%A9%B5%BD",
                "posttime":int(time.time()),
                "formhash": result[1],
                "subject":"",
                "usesig":"1"}
        resRes = requests.post(url=result[0], headers=pcbbsHeaders, data=data)
        if "回复发布成功" in resRes.text:
            # 领取奖励
            lqRes1 = requests.get(url=lqurl+idd, headers=pcHeaders)
            # 获取任务状态
            doneTaskRes1 = requests.get(url=doneUrl, headers=pcHeaders)
            if taskName in doneTaskRes1.text:
                return "打卡成功,PB币+2"
            else:
                writeLog(lqRes1.text)
                return "奖励领取失败"
        else:
            writeLog(resRes.text)
            return "回帖失败"
    else:
        return "没有此任务"

if __name__ == "__main__":
        print(pcbetaCheckin())
        print(pcbetaReply())

如有违规请管理删帖

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
chablino + 1 + 1 谢谢@Thanks!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| yuanxinjie 发表于 2023-4-24 00:15
zywb 发表于 2023-4-23 20:35
调试的时候就出现下面的内容,不知道怎么回事?
## 开始执行... 2023-04-23 20:34:14

脚本后面没调用签到函数,要自己在后面调用,加上
[Python] 纯文本查看 复制代码
if __name__ == "__main__":
	print(pcbetaCheckin())
	print(pcbetaReply())

zywb 发表于 2023-4-23 20:35
调试的时候就出现下面的内容,不知道怎么回事?
## 开始执行... 2023-04-23 20:34:14




## 执行结束... 2023-04-23 20:34:16  耗时 2 秒
只送两个头 发表于 2023-4-22 15:54
这个论坛居然还活着,之前装系统都是在上面找镜像
 楼主| yuanxinjie 发表于 2023-4-22 16:20
cy465728759 发表于 2023-4-22 15:54
这个论坛居然还活着,之前装系统都是在上面找镜像

我当初进着论坛是为了找黑苹果方面的东西,现在不玩黑果也没啥好看的了
shandian281 发表于 2023-4-22 16:31
缺的是注册邀请码。
sunny568914 发表于 2023-4-22 16:45
缺的是注册邀请码。百度贴吧水道8级了
 楼主| yuanxinjie 发表于 2023-4-22 16:46
shandian281 发表于 2023-4-22 16:31
缺的是注册邀请码。

我当初好像是tb几块钱买的邀请码,也不贵,现在应该还有
AABB2580 发表于 2023-4-22 18:23
学习了,有用
shandian281 发表于 2023-4-22 18:40
yuanxinjie 发表于 2023-4-22 16:46
我当初好像是tb几块钱买的邀请码,也不贵,现在应该还有

我去看看。
sk8820 发表于 2023-4-23 09:47
F12找的,没找到jqCP_887f_saltkey与jqCP_887f_auth=
walkercao 发表于 2023-4-23 20:27
感谢分享
这样就不用费手指了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-8 01:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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