兄弟们有 Linux.Do 和 V2EX 的签到脚本吗? 开始有点烦每天上去刷点赞和签到了

43 条回复
344 次浏览
前排打手
OP
Guardian

坐等吃白食

l 站有刷 ldc 的, 就是点点赞啥的, 我现在基本保持给几个帖子点点赞, 每天拿个 10ldc 左右

大平衡者

L 站太卡了,我都懒的去看了,等我忙完,我发个帖分享下 V 的

@Path linuxdo 几天没上,又把我账号给干掉了。懒得再去写小作文了,感觉那边管理员是不是有点心理问题?think

大平衡者

@2hustle 啊?L 站是不是有类似 PT 站的考核机制啊,活跃度不够被回收的吗?我的号几个月没登也没被回收啊

六边形战士
Guardian

想拿 ldc, 多抢前排就行。前排获赞率很高。尤其是始皇的帖子,关注他,每次发帖你抢前排就行。

@Path 应该不是的,我就是春节前利用了本站大佬的邀请码写小作文通过了,签到也参与了几天 linuxdo,春节一回来,账号就没了

收藏家

V2Next、V2EX Polish 这两个应该都可以,我用的第一个;Linux.Do 不知道 没这个号

前排打手
OP
Guardian

我是说那种可以放在服务器上自己跑的, 就是不想专门去操作.

就跟现在的 2 站一样, 服务端自己跑签到, 然后我就专心的看帖子就行, 不需要关心那些签到之类的.

六边形战士
Guardian

你不是每天活在 v2 嘛,那还需要关心签到吗?油猴脚本都是自动的,只要访问 v2 就行了。

马上来

L 站始皇刚收拾了一批脚本,勿 Q,还是刷新一下保登录就行
V 站你插件商店搜 V2EX 那几个都行

种子用户

V 站有,忘了部署在哪了反正一直在用,L 站没签到习惯。苦恼的是 2 站nose_pick

前排打手
OP
Guardian

这是我现在在跑的 shell 脚本, 每天早晨 8 点左右执行一次:

核心签到方法:

复制
sign_in() {
  response=$(curl -s -w "\n%{http_code}" -X POST 'https://2libra.com/api/sign' \
    -H 'accept: application/json, text/plain, */*' \
    -H 'accept-language: zh-CN,zh;q=0.9,en;q=0.8' \
    -H "authorization: Bearer $ACCESS_TOKEN" \
    -H 'priority: u=1, i' \
    -H 'referer: https://2libra.com/' \
    -H 'sec-ch-ua: "Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"' \
    -H 'sec-ch-ua-mobile: ?0' \
    -H 'sec-ch-ua-platform: "macOS"' \
    -H 'sec-fetch-dest: empty' \
    -H 'sec-fetch-mode: cors' \
    -H 'sec-fetch-site: same-origin' \
    -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36')
  
  http_code=$(echo "$response" | tail -n1)
  body=$(echo "$response" | sed '$d')
  
  log "签到响应: $body"
  HTTP_CODE=$http_code

  if [ "$HTTP_CODE" -ge 400 ]; then
    return 1
  fi

  return 0
}

ACCESS_TOKEN 自己登录抓一下.

马上来

v 站有 需要使用青龙脚本 搭配环境变量设置 cookie 用

复制
import requests
import time
import json
import os
import random
import re

# -------------------------- 尝试导入通知模块 --------------------------
try:
    from notify import send
except ImportError:
    def send(title, content):
        print(f"\n[通知] {title}\n{content}")
        print("\n 未找到 notify.py 模块,取消推送")

# -------------------------- 核心逻辑 --------------------------
class V2exSigner:
    def __init__(self, cookie, index):
        self.cookie = cookie
        self.index = index
        self.headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
            "Referer": "https://www.v2ex.com/",
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
            "Cookie": self.cookie
        }
        self.session = requests.Session()
        self.session.headers.update(self.headers)

    def sign(self):
        print(f"\n==== 账号 {self.index} 开始签到 ====")
        try:
            # 1. 访问签到页面获取 once 参数
            res = self.session.get("https://www.v2ex.com/mission/daily", timeout=20)
            if "登出" not in res.text:
                return {"status": "失败", "msg": f"账号 {self.index}: Cookie 已失效或未登录"}

            if "每日登录奖励已领取" in res.text:
                return {"status": "成功", "msg": f"账号 {self.index}: 今日已签过"}

            # 正则匹配签到链接
            pattern = r"location\.href = \'(.*?once=.*?)\';"
            urls = re.findall(pattern, res.text)
            
            if not urls:
                return {"status": "失败", "msg": f"账号 {self.index}: 未找到签到链接,可能已签到或页面结构变化"}

            # 2. 执行签到请求
            sign_url = "https://www.v2ex.com" + urls[0]
            self.session.headers.update({"Referer": "https://www.v2ex.com/mission/daily"})
            self.session.get(sign_url, timeout=20)

            # 3. 验证签到结果
            res = self.session.get("https://www.v2ex.com/mission/daily", timeout=20)
            if "每日登录奖励已领取" in res.text:
                # 获取余额和奖励信息
                balance_res = self.session.get("https://www.v2ex.com/balance", timeout=20)
                # 尝试获取今日金币
                reward = re.findall(r'<td class="d"><span class="gray">(.*?)</span></td>', balance_res.text)
                reward_info = reward[0] if reward else "成功获取"
                
                # 获取总余额
                total = re.findall(r'<td class="d" style="text-align: right;">(\d+\.\d+)</td>', balance_res.text)
                total_info = total[0] if total else "未知"

                return {
                    "status": "成功",
                    "msg": f"账号 {self.index}: 签到成功!奖励: {reward_info},余额: {total_info}"
                }
            else:
                return {"status": "失败", "msg": f"账号 {self.index}: 签到请求已发,但页面仍显示未领取"}

        except Exception as e:
            return {"status": "异常", "msg": f"账号 {self.index}: 异常 -> {str(e)}"}

def main():
    # 环境变量:V2EX_COOKIE
    cookie_env = os.getenv("V2EX_COOKIE")
    
    if not cookie_env:
        print(" 未找到环境变量 V2EX_COOKIE,请在青龙后台设置")
        return

    # 分割多个 Cookie
    cookies = re.split(r'[&\n]', cookie_env)
    cookies = [c.strip() for c in cookies if c.strip()]
    
    print(f"共发现 {len(cookies)} 个 V2EX 账号")

    # 随机签到模式 (保持一致风格)
    random_signin = os.getenv("RANDOM_SIGNIN", "false").lower() == "true"
    if random_signin:
        delay = random.randint(1, 1800)
        print(f"随机签到已启用,随机延迟时间窗口: 30 分钟")
        print(f"当前任务将延迟 {delay} 秒后执行...")
        time.sleep(delay)
    else:
        print("随机签到: 禁用")

    all_results = []
    for i, ck in enumerate(cookies, 1):
        signer = V2exSigner(ck, i)
        res = signer.sign()
        print(res["msg"])
        all_results.append(res["msg"])

    # 统一通知
    if all_results:
        notify_content = "\n".join(all_results)
        send("V2EX 签到通知", notify_content)

if __name__ == "__main__":
    main()

linuxdo 我没账号就没有了

马上来

L 站十分不推荐搞脚本,现在加的登录验证中伤了不少人,因为脚本多少人被无辜踢下线了

前排打手
OP
Guardian

我那天看有个回复说 L 站不禁止脚本, 只是不允许 AI 回复之类的. 是我想多了看来

马上来

看置顶的 帖子 怒了兄弟们,服务器资源到底都被谁吃了?脚本刷的服务器扛不住了出现了新一轮的技术对抗

前排打手

用 qd-today 项目吗?用的话可以在默认的公共模板仓库搜一下就找到了。

发表一个评论

R保持