# 前言

最近开始关注微博超话,发现每天签到非常麻烦。于是就利用 GPT-4 写了一个 Python 脚本来自动签到微博超话。

这个脚本可以自动遍历多个超话,并对每个超话进行签到操作。在签到之间添加随机等待时间,以避免触发微博的反作弊机制。

# 使用方法

  1. 首先,你需要在浏览器中登录微博,并获取到你的登录 cookies。可以通过在浏览器中按 F12 打开开发者工具,然后在 Network 选项卡中找到你的微博页面请求,复制其中的 cookies。

Cookie 中含有你的账号信息,谨慎保存!本网站不对此负责,Cookie 有效期因人而异。

  1. 在脚本中修改 cookies 变量,将其设置为你的登录 cookies。

这里以 Chrome 为例:F12-> 在顶部找到 Application-> 在左侧找到 Storage-> 点击 Cookies-> 找到 Name 为 SUB 的选项并双击,复制右侧 Value 栏目当中的 Cookies

  1. super_topic_active_ids 列表中添加你想签到的超话 active_id

如果超话链接为 https://weibo.com/p/1008080d055beb31fd94ce0399a1981d82afc5/super_index 那么 active_id 则为 1008080d055beb31fd94ce0399a1981d82afc5

  1. 运行脚本即可自动签到。
import json
import random
import re
import requests
import time
# 在脚本开始时等待 0 到 7200 秒 (0 到 2 小时)
sleep_time = random.randint(0, 7200)
time.sleep(sleep_time)
# 配置 headers 和 cookies
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134",
    "Referer": "https://weibo.com/"
}
cookies = {
    "SUB": "你的Cookies"
}
def random_wait(min_wait=5, max_wait=15):
    wait_time = random.randint(min_wait, max_wait)
    time.sleep(wait_time)
def check_in(cookies, url):
    session = requests.Session()
    session.cookies.update(cookies)
    response = session.get(url, headers=headers)
    active_id = "1008080d055beb31fd94ce0399a1981d82afc5"
    print(f"找到 active_id: {active_id}")
    # 在这里处理 active_id
    checkin_url = f"https://weibo.com/p/aj/general/button?id={active_id}&api=http://i.huati.weibo.com/aj/super/checkin"
    checkin_response = session.get(checkin_url, headers=headers)
    checkin_result = json.loads(checkin_response.text)
    if checkin_result["code"] == 382004:
        print("签到成功:今天已签到")
    else:
        print("签到结果:", checkin_result)
if __name__ == "__main__":
    print("Running Weibo check-in script...")
    super_topic_active_ids = [
        "1008080d055beb31fd94ce0399a1981d82afc5",
        "1008084b3f3945e087a0dd32f56c3603b7d153",   
        # 添加更多超话 active_id
    ]
    for active_id in super_topic_active_ids:
        url = f"https://weibo.com/p/{active_id}"
        check_in(cookies, url)
        random_wait()  # 在签到之间添加随机等待时间
    print("Script finished.")

# 部署到云服务器进行定时运行

1. 打开终端,输入 crontab -e 命令。这将打开一个编辑器,您可以在其中编辑自己的 cron 任务。
2. 在编辑器中,您需要按照以下格式添加一行:

分钟 小时 日 月 周几 命令

例如,要在每天的凌晨 1 点自动运行脚本,您可以添加如下行:

0 1 * * * /usr/bin/python3 /path/to/your/weibo_checkin.py

这意味着在每天凌晨 1 点(小时为 1,分钟为 0) cron 会执行 /usr/bin/python3 /path/to/your/weibo_checkin.py 命令。请确保将 /path/to/your/weibo_checkin.py 替换为您的脚本实际路径。

3. 保存文件并退出编辑器。现在, cron 已经设置好了,它会在指定的时间自动运行您的签到脚本。

请注意,这个示例假设您的 Python 3 解释器位于 /usr/bin/python3 。根据您的系统,这个路径可能有所不同。要找到 Python 3 解释器的确切路径,您可以在终端中运行 which python3 命令。

# 总结

这个脚本可以自动签到多个微博超话,并且添加了随机等待时间来避免触发反作弊机制。如果你也经常签到微博超话,那么可以尝试使用这个脚本来自动化这个过程。但是还是存在账号被风控的风险,还是那句话,用就别怕,怕就别用!

Edited on