asi568 发表于 3 天前

e4rljia 发表于 2025-1-11 22:30
自己拿gpt写一个呗。

写了好几个测试了下,都用不了。

Nigel 发表于 3 天前

人肉签到

e4rljia 发表于 3 天前

asi568 发表于 2025-1-13 08:00
写了好几个测试了下,都用不了。

import os# 用于获取环境变量
import sys# 用于异常处理和退出
import requests# 用于发送 HTTP 请求
import cloudscraper# 用于绕过 Cloudflare 验证
import json# 可选,用于手动解析 JSON 数据
import logging# 可选,用于记录日志
import time# 可选,用于实现重试逻辑

# 初始化日志配置
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

# 获取环境变量
NS_RANDOM = os.environ.get("NS_RANDOM", "true")# 随机参数,默认值为 "true"
NS_COOKIE = os.environ.get("NS_COOKIE", "")# 从环境变量获取 NS_COOKIE
COOKIE = os.environ.get("COOKIE", "")# 从环境变量获取 COOKIE
COOKIE_ENV = NS_COOKIE or COOKIE# 优先使用 NS_COOKIE,如果没有再用 COOKIE

if COOKIE_ENV:
    # 清理 Cookie 值,去除多余的换行和空格
    COOKIE_ENV = COOKIE_ENV.strip().replace('\n', '').replace('\r', '')
    logging.info(f"使用的 Cookie: {COOKIE_ENV}")# 打印调试信息

    # API 请求 URL
    url = f"https://www.nodeseek.com/api/attendance?random={NS_RANDOM}"

    # 请求头信息
    headers = {
      'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
      'origin': "https://www.nodeseek.com",
      'referer': "https://www.nodeseek.com/board",
      'accept-language': "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
      'Cookie': COOKIE_ENV
    }

    try:
      # 创建 CloudScraper 实例
      scraper = cloudscraper.create_scraper(
            browser={
                'browser': 'chrome',# 模拟的浏览器类型
                'platform': 'windows',# 模拟的操作系统
                'mobile': False# 是否模拟移动设备
            }
      )

      # 发送 POST 请求
      logging.info(f"正在向 {url} 发送请求...")
      response = scraper.post(url, headers=headers)

      # 检查 HTTP 响应状态码
      if response.status_code != 200:
            logging.error(f"请求失败,HTTP 状态码: {response.status_code}")
            if "Just a moment" in response.text or "cf-chl-bypass" in response.text:
                logging.error("Cloudflare 验证失败,返回了验证页面。")
            sys.exit(1)

      # 打印实际响应内容
      logging.info(f"实际响应内容: {response.text}")

      # 解析 JSON 数据
      try:
            response_data = response.json()
            logging.info(f"解析的 JSON 数据: {response_data}")# 打印返回的 JSON 数据
            message = response_data.get('message', '无消息')# 如果没有 message,默认值为 "无消息"
            success = response_data.get('success', False)# 如果没有 success,默认值为 False
            if success:
                logging.info(f"签到成功: {message}")
            else:
                logging.warning(f"签到失败: {message}")
      except ValueError:
            logging.error("响应内容不是有效的 JSON 数据,可能返回了 HTML 验证页面。")
            logging.error(f"响应内容: {response.text}")

    except Exception as e:
      logging.error("发生异常:", exc_info=True)# 打印详细的异常信息
else:
    logging.error("请先设置 Cookie")

e4rljia 发表于 3 天前

asi568 发表于 2025-1-13 08:00
写了好几个测试了下,都用不了。

青龙的,自己加一下环境变量

老帅比 发表于 3 天前

马上....不需要了

yansenyao 发表于 3 天前

马上就让你变成论坛神仙:@:@

juying5070 发表于 3 天前

搞到三千就不需要了吗

plyu007 发表于 3 天前

神仙,不需要了

jasper 发表于 3 天前

等级越高反而越危险https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

williamc2 发表于 3 天前

已经....不需要了
页: 1 2 3 [4] 5
查看完整版本: 重新写了个 LOC 签到脚本