基于Chrome插件的微博超话自动签到


前言

不方便使用Chrome插件或对签到结果有通知要求的
请参考
基于Python的微博超话自动签到(云函数/Github Actions+钉钉/微信/QQ通知)


一、准备工作

需要提前做好以下准备

  1. 可以安装Chrome插件的浏览器(以Chrome为例)
    在这里插入图片描述

  2. 在微博网页端完成登陆操作
    在这里插入图片描述

二、插件安装

1.插件下载

  可以从以下三个地址任选一个进行下载, 如果选择的是第三个并且安装成功,请前往脚本编程继续。
  魂签 Github 地址
     百度网盘地址 提取码 : 0hrc
     Chrome插件地址

2.解压并安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、脚本编写(手动获取参数)

1.复制脚本

使用 记事本VS Code 等工具复制如下脚本代码

// ==UserScript==
// @name              微博超话批量签到
// @namespace         https://github.com/inu1255/soulsign-chrome
// @version           1.0.0
// @author            KaleoFeng
// @loginURL          https://weibo.com
// @expire            900e3
// @domain            weibo.com
// @param             reserved 暂无参数
// ==/UserScript==

// 【本地超话列表】
// hid 超话ID
// hname 超话名称
let chaohuas = [
    {
      "hid": "",
      "hname": ""
    },
  ];
  
  // 当前时间戳
  const timestamp = new Date().getTime();
  
  function sleep(milliseconds) {
    return new Promise((resolve) => setTimeout(resolve, milliseconds));
  }
  
  async function doSignIn(hid, hname) {
    const url = 'https://weibo.com/p/aj/general/button?ajwvr=6';
  
    const rsp = await axios({
      url: url,
      method: 'GET',
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'X-Requested-With': 'XMLHttpRequest',
        'Origin': 'https://weibo.com',
        'Referer': `https://weibo.com/p/${hid}/super_index`
      },
  
      params: {
        'api': 'http://i.huati.weibo.com/aj/super/checkin',
        'texta': '签到',
        'textb': '已签到',
        'status': '0',
        'id': hid,
        'location': 'page_100808_super_index',
        'timezone': 'GMT 0800',
        'lang': 'zh-cn',
        'plat': 'Win32',
        'ua': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
        'screen': '1920*1080',
        '__rnd': timestamp,
      }
    });
  
    if (rsp.status != 200) {
      return {
        success: false,
        msg: `超话签到[${hname}]: ${rsp.status}-操作失败`
      };
    }
  
    return {
      success: rsp.data.code == '100000' || rsp.data.code == '382004',
      msg: `超话签到[${hname}]: ${rsp.data.code}-${rsp.data.msg}`
    };
  }
  
  exports.run = async function(param) {
    let result = {};
  
    // 执行超话批量签到
    let count = 0;
    for (const chaohua of chaohuas) {
      const hid = chaohua['hid'];
      const hname = chaohua['hname'];
  
      let result = await doSignIn(hid, hname);
      if (!result.success) {
        throw result.msg;
      }
  
      ++count;
      await sleep(3000);
    }
  
    return `操作成功: 完成数量[${count}]`;
  };
  
  exports.check = async function(param) {
    return true;
  };

2.获取参数

打开想要签到的超话界面,这里以动森超话为例, F12 调出开发者工具 或 鼠标右键 选择最下面的检查,切换到开发者工具的 Network 界面,点击签到按钮,观察到触发了一个 Button 事件

在这里插入图片描述
点击 Button 事件拉到最下面找到 ID ,复制到脚本中的本地超话列表,这样就完成了一个超话的签到参数获取
在这里插入图片描述
在这里插入图片描述
重复以上操作,贴写完自己所需要签到的所有超话的参数(上图中空着没填是做一个示例,实际请务必避免有参数没填,否则会报错)。如果使用的Mac这样的平台,请更改脚本中如下位置参数,使其与 id 所在的 Query String Parameters 中的参数保持一致

在这里插入图片描述

3.运行测试

在这里插入图片描述
在这里插入图片描述
复制脚本后,单击右下角保存,打开启用,单击运行即可完成签到操作,打开启用后将会在每天固定时间点自动签到所有填写过的超话,签到时间设置请在第一张图中的 签到开始时间 设置,在该时间点需要保证浏览器打开,否则可能需要手动运行
在这里插入图片描述

四、脚本编写(自动获取参数)

1.复制脚本

  var res = document.getElementsByClassName("ALink_none_1w6rm TopicFeedCard_left_EgdGf");
  var list = new Object();
  var lists = new Array();
  for(let i = 0; i < res.length; i++){
    list.hid = res[i].href.toString().slice(res[i].href.toString().indexOf("/p/")+3);
    list.hname = res[i].lastChild.children[0].innerText;
    lists[i] = {"hid":list.hid, "hname":list.hname};
  }
  console.log(JSON.stringify(lists, null, 4));

2.获取参数

访问超话关注列表网页或个人主页 -> 我的关注 -> 超话,鼠标右击打开检查或直接键盘F12打开检查,粘贴脚本后回车,复制所得内容
在这里插入图片描述

3.填入参数

使用 记事本VS Code 等工具复制如下脚本代码,找到 let chaohuas = 直接在 = 符号后粘贴

// ==UserScript==
// @name              微博超话批量签到
// @namespace         https://github.com/inu1255/soulsign-chrome
// @version           1.0.0
// @author            KaleoFeng
// @loginURL          https://weibo.com
// @expire            900e3
// @domain            weibo.com
// @param             reserved 暂无参数
// ==/UserScript==

// 【本地超话列表】
// hid 超话ID
// hname 超话名称
let chaohuas = 
  
  // 当前时间戳
  const timestamp = new Date().getTime();
  
  function sleep(milliseconds) {
    return new Promise((resolve) => setTimeout(resolve, milliseconds));
  }
  
  async function doSignIn(hid, hname) {
    const url = 'https://weibo.com/p/aj/general/button?ajwvr=6';
  
    const rsp = await axios({
      url: url,
      method: 'GET',
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'X-Requested-With': 'XMLHttpRequest',
        'Origin': 'https://weibo.com',
        'Referer': `https://weibo.com/p/${hid}/super_index`
      },
  
      params: {
        'api': 'http://i.huati.weibo.com/aj/super/checkin',
        'texta': '签到',
        'textb': '已签到',
        'status': '0',
        'id': hid,
        'location': 'page_100808_super_index',
        'timezone': 'GMT 0800',
        'lang': 'zh-cn',
        'plat': 'Win32',
        'ua': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
        'screen': '1920*1080',
        '__rnd': timestamp,
      }
    });
  
    if (rsp.status != 200) {
      return {
        success: false,
        msg: `超话签到[${hname}]: ${rsp.status}-操作失败`
      };
    }
  
    return {
      success: rsp.data.code == '100000' || rsp.data.code == '382004',
      msg: `超话签到[${hname}]: ${rsp.data.code}-${rsp.data.msg}`
    };
  }
  
  exports.run = async function(param) {
    let result = {};
  
    // 执行超话批量签到
    let count = 0;
    for (const chaohua of chaohuas) {
      const hid = chaohua['hid'];
      const hname = chaohua['hname'];
  
      let result = await doSignIn(hid, hname);
      if (!result.success) {
        throw result.msg;
      }
  
      ++count;
      await sleep(3000);
    }
  
    return `操作成功: 完成数量[${count}]`;
  };
  
  exports.check = async function(param) {
    return true;
  };

3.运行测试

在这里插入图片描述
在这里插入图片描述
复制脚本后,单击右下角保存,打开启用,单击运行即可完成签到操作,打开启用后将会在每天固定时间点自动签到所有填写过的超话,签到时间设置请在第一张图中的 签到开始时间 设置,在该时间点需要保证浏览器打开,否则可能需要手动运行
在这里插入图片描述


总结

感谢b站up @乐只兮兮鹿 分享的脚本
作者省去了部分云端内容,添加了自动获取参数的脚本,希望对你有所帮助

  • 18
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
为了爬取微博帖子的评论,可以使用Python中的第三方库——Selenium和BeautifulSoup。Selenium可以模拟浏览器的操作,BeautifulSoup可以解析HTML文档,两者结合可以实现爬取微博帖子评论的功能。 以下是一个简单的微博帖子评论爬虫的示例代码: ```python from selenium import webdriver from bs4 import BeautifulSoup import time # 设置Chrome浏览器的无头模式 options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--disable-gpu') driver = webdriver.Chrome(options=options) # 要爬取的微博帖子链接 url = 'https://weibo.com/1234567890/ABCDE1234' # 打开链接 driver.get(url) # 模拟下拉操作,加载更多评论 while True: try: # 找到“查看更多评论”的按钮 button = driver.find_element_by_xpath('//a[@class="more_txt"]') # 点击按钮 button.click() # 等待一段时间,等待评论加载完成 time.sleep(2) except: # 没有“查看更多评论”的按钮,退出循环 break # 获取页面源代码 html = driver.page_source # 解析HTML文档 soup = BeautifulSoup(html, 'html.parser') # 找到所有评论 comments = soup.find_all('div', {'class': 'WB_text'}) # 输出所有评论的文本内容 for comment in comments: print(comment.text.strip()) # 关闭浏览器 driver.quit() ``` 需要注意的是,为了避免被微博反爬虫机制检测到,可以在代码中加入一些随机等待时间,或者使用代理IP等方法来降低被封禁的风险。 --相关问题--: 1. 如何使用Selenium模拟登录微博? 2. 如何使用BeautifulSoup解析HTML文档?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值