吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2570|回复: 31
收起左侧

[Python 原创] 远景论坛签到脚本

  [复制链接]
pcghr355 发表于 2025-6-8 06:34
本帖最后由 pcghr355 于 2025-6-8 17:32 编辑

原帖地址
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1777132&highlight=%D4%B6%BE%B0
找了半天,发现这个签到好像失效了
更新一下,顺便发出来
青龙面板,cookie值F12去抓
dd4516d3-3fd0-4073-990c-5ac0944e2c99.png
源码

[Python] 纯文本查看 复制代码
import requests
from datetime import datetime
import time
import os
import re
from urllib.parse import urlparse, urlunparse


# 请在此处更新你的Cookies!!!
cookies = ""
FORCE_IP = "43.161.244.42"
pcHeaders = {
    "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
}


DOMAINS = {
    "www.pcbeta.com": FORCE_IP,
    "bbs.pcbeta.com": FORCE_IP,
    "uc.pcbeta.com": FORCE_IP,
    "i.pcbeta.com": FORCE_IP
}


def force_ip_url(original_url):
    parsed_url = urlparse(original_url)
   
    if parsed_url.hostname in DOMAINS:
        new_netloc = DOMAINS[parsed_url.hostname]
        if parsed_url.port:
            new_netloc += f":{parsed_url.port}"
        
        return urlunparse((
            parsed_url.scheme,
            new_netloc,
            parsed_url.path,
            parsed_url.params,
            parsed_url.query,
            parsed_url.fragment
        ))
    return original_url


pcUrl_original = "https://i.pcbeta.com/home.php?mod=task&do=apply&id=149"
lqurl_original = "https://i.pcbeta.com/home.php?mod=task&do=draw&id=149"
newUrl_original = "https://i.pcbeta.com/home.php?mod=task&item=new"
doingUrl_original = "https://i.pcbeta.com/home.php?mod=task&item=doing"
doneUrl_original = "https://i.pcbeta.com/home.php?mod=task&item=done"
creditUrl_original = "https://i.pcbeta.com/home.php?mod=spacecp&ac=credit"


pcUrl = force_ip_url(pcUrl_original)
lqurl = force_ip_url(lqurl_original)
newUrl = force_ip_url(newUrl_original)
doingUrl = force_ip_url(doingUrl_original)
doneUrl = force_ip_url(doneUrl_original)
creditUrl = force_ip_url(creditUrl_original)


pcHeaders["Host"] = "i.pcbeta.com"


def writeLog(content, log_type="log"):
    """保存日志到文件"""
    if not os.path.exists("./log"):
        os.makedirs("./log")
   
    log_filename = f"{log_type}_{datetime.now().strftime('%Y%m%d_%H%M%S')}.html"
    with open(f"./log/{log_filename}", "w", encoding="utf-8") as f:
        f.write(content)
    return f"日志已保存: ./log/{log_filename}"


def safe_request(url, headers, method="get", data=None):
    """安全的请求函数,处理各种异常"""
    try:
        verify_ssl = False
        if method.lower() == "get":
            response = requests.get(url, headers=headers, timeout=10, verify=verify_ssl)
        else:
            response = requests.post(url, headers=headers, data=data, timeout=10, verify=verify_ssl)
        response.encoding = 'utf-8'
        return response.text, None
    except requests.exceptions.RequestException as e:
        return None, f"请求出错: {str(e)}"
    except Exception as e:
        return None, f"未知错误: {str(e)}"


def fetch_task_status():
    """获取任务状态"""
    status = {"new": None, "doing": None, "done": None}
   
    for task_type in status:
        url = {
            "new": newUrl,
            "doing": doingUrl,
            "done": doneUrl
        }[task_type]
        
        text, error = safe_request(url, pcHeaders)
        if error:
            return None, error
        
        status[task_type] = text
   
    return status, None


def get_credit_info():
    """获取PB币和积分信息"""
    try:
        credit_text, error = safe_request(creditUrl, pcHeaders)
        if error:
            return None, None, error
        
        pb_pattern = r'<em>\s*PB币\s*:\s*</em>\s*(\d+)'
        pb_match = re.search(pb_pattern, credit_text)
        pb_coin = pb_match.group(1) if pb_match else "未知"
        
        credit_pattern = r'<em>\s*积分\s*:\s*</em>\s*(\d+)'
        credit_match = re.search(credit_pattern, credit_text)
        credit = credit_match.group(1) if credit_match else "未知"
        
        return pb_coin, credit, None
   
    except Exception as e:
        return None, None, f"获取积分信息出错: {str(e)}"


def pcbetaCheckin():
    """执行签到任务"""
    try:
        status, error = fetch_task_status()
        if error:
            return f"签到失败: {error}"
        
        if "每日打卡" in status["new"]:
            text, error = safe_request(pcUrl, pcHeaders)
            if error:
                return error
            
            if "抱歉,本期您已申请过此任务" in text:
                pass  # 继续执行签到
            elif "任务已成功完成" in text:
                return "签到成功"
            
            time.sleep(1)
            lq_text, lq_error = safe_request(lqurl, pcHeaders)
            if lq_error:
                return lq_error
            
            if "任务已成功完成" in lq_text:
                return "签到成功,PB币+1"
            
            new_status, status_error = fetch_task_status()
            if status_error:
                return status_error
               
            if "每日打卡" in new_status["done"]:
                return "签到已完成"
            
            writeLog(lq_text, "checkin_error")
            return "签到失败,查看日志"
        
        elif "每日打卡" in status["doing"]:
            lq_text, lq_error = safe_request(lqurl, pcHeaders)
            if lq_error:
                return lq_error
               
            if "任务已成功完成" in lq_text:
                return "签到成功,PB币+1"
            
            writeLog(lq_text, "checkin_error")
            return "签到任务进行中,但未能完成"
        
        elif "每日打卡" in status["done"]:
            return "今日已签到,无需重复"
        
        else:
            return "未找到签到任务"
   
    except Exception as e:
        return f"签到过程中发生异常: {str(e)}"


if __name__ == "__main__":
    import urllib3
    urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
   
    start_time = datetime.now()


   
    print("▂▂▂▂▂▂▂▂▂▂▂▂ 签到结果 ▂▂▂▂▂▂▂▂▂▂▂▂")
    checkin_result = pcbetaCheckin()
   
    pb_coin, credit, error = get_credit_info()
   
    RED = "\033[32m"
    RESET = "\033[0m"
   
    if error:
        print(f"│ 状态: {RED}{checkin_result}{RESET} | &#10060; 账户信息: {error}")
    else:
        status_highlight = RED + re.sub(r'(今日已签到|签到成功|签到完成|无需重复)', lambda m: RED + m.group(0) + RESET, checkin_result) + RESET
        print(f"│ 状态: {status_highlight} | &#129689; PB币: {RED}{pb_coin}{RESET} | &#128202; 积分: {RED}{credit}{RESET}")
   
    end_time = datetime.now()
    duration = (end_time - start_time).total_seconds()
   
    print("\n┌" + "─" * 50 + "┐")
    print(f"│ 结束时间: {end_time.strftime('%Y-%m-%d %H:%M:%S')}".ljust(50) + "│")
    print(f"│ 总耗时: {duration:.2f} 秒".ljust(50) + "│")
    print("└" + "─" * 50 + "┘")

免费评分

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

查看全部评分

本帖被以下淘专辑推荐:

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

rongtian 发表于 2025-6-8 11:45
开创者 发表于 2025-6-8 10:30
是我出问题了吗?很久都打不开这个论坛了

需要添加hosts文件。
winshaw 发表于 2025-6-8 17:21
buybuy 发表于 2025-6-8 16:52
我也打不开 要怎样才能打开

复制下面内容然后 按 win+x 选择 终端管理员 或者 Powershell右键管理员模式运行,直接复制下面所有内容,一起是一行,粘贴回车即可
Set-ExecutionPolicy Bypass -Scope Process -Force; if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell "-NoProfile -ExecutionPolicy Bypass -Command `"$PSCommandPath`"" -Verb RunAs; exit }; "`n43.161.244.42 http://www.pcbeta.com`n43.161.244.42 bbs.pcbeta.com`n43.161.244.42 i.pcbeta.com`n43.161.244.42 uc.pcbeta.com" | Out-File -FilePath "$env:SystemRoot\System32\drivers\etc\hosts" -Append -Encoding ASCII; Write-Host "Hosts文件已更新!"
开创者 发表于 2025-6-8 10:30
m_h 发表于 2025-6-8 10:43
本帖最后由 m_h 于 2025-6-8 10:45 编辑
开创者 发表于 2025-6-8 10:30
是我出问题了吗?很久都打不开这个论坛了

能打开啊  但是www 打不开,没看到他备案。估计 特殊地方是打不开 比如墙中墙地区
开创者 发表于 2025-6-8 11:36
m_h 发表于 2025-6-8 10:43
能打开啊  但是www 打不开,没看到他备案。估计 特殊地方是打不开 比如墙中墙地区

好吧,也许是吧, 我还有帐号呢,看来又一个论坛要快没了
chishingchan 发表于 2025-6-8 13:56
论坛中除了每日 1 积分的签到,还有一个 2 积分的签到任务!
nshkba 发表于 2025-6-8 15:23
感谢楼主分享
dysunb 发表于 2025-6-8 15:58
这个也可以有啊
buybuy 发表于 2025-6-8 16:52
我也打不开 要怎样才能打开
草千里 发表于 2025-6-8 17:19
我的远景论坛也是一直打不开
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-12-17 10:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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