损一毫利天下

发布于
批量添加微博关注

微博账号被封一年多,近来重新启用一个账号。于是需要把之前的关注都加回来。本想直接用微博的开放平台,翻了一下,此路不通。于是网上搜批量添加微博关注的方法。

整理后如下:

  1. 获取需要关注的微博id , 做法是电脑上模拟手机版微博,进到关注列表,把关注的 id 逐页翻出来。

先写一个函数,提取id:

const g = res => res.data.cards[0].card_group.map(x=>x.user.id )

然后把每页响应的数据用 函数 g 提取出关注 id 的数组。

  1. 假设得到一个数组,赋值给 list 变量
const list = [1708942053, 1905687615, 1856404484]
  1. 定时发送请求,调用微博加关注的接口,最后的 1.5 表示一分半钟请求一次。时间充裕的话,建议不要调的太小,不然会出现验证码。
// 获取 cookie 
function getCookie(name) {
  var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  if (arr = document.cookie.match(reg))
    return unescape(arr[2]);
  else
    return null;
}

// 发送请求
rq = x => fetch('https://m.weibo.cn/api/friendships/create', {
  method: 'POST',
  body: 'uid=' + x + '&st=' + getCookie('XSRF-TOKEN') + '&_spr=screen%3A414x736',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
  }
})

// 定时执行
let interval = null;
let i = 0;
const add = () => {
  i++;
  if (i > list.length) {
    window.clearInterval(interval);
    console.log('列表关注完成')
  } else {
    rq(list[i])
  }
}

interval = window.setInterval(() => add(), 1.4 * 60 * 1000)

改良了网上的方法,加了自动获取 cookie,不然 cookie 每几次都会变