b站如何一次性把up主全部取消关注,让自己去学习

简介: b站如何一次性把up主全部取消关注,让自己去学习

刚打开b站准备学习,看到了动态上面一个小红点。忍不住点开进去,然后说 “看完这个就学习”。最后花了几个小时才停下来。


于是痛定思痛,取消所有up主的关注,这样就不会推送消息了。但是一个个点击取消关注太慢了,还要进up主页,点取消关注,再点关注才行。老子要一次性全部取消。


1.首先要进入动态,获取所有关注up主的uid。

找到了请求接口

然后写出get请求即可。(先不考虑cookies,之后会提到)

headers = {
    'authority': 'api.vc.bilibili.com',
    'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',
    'accept': 'application/json, text/plain, */*',
    'sec-ch-ua-mobile': '?0',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36',
    'sec-ch-ua-platform': '"Windows"',
    'origin': 'https://t.bilibili.com',
    'sec-fetch-site': 'same-site',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    'referer': 'https://t.bilibili.com/',
    'accept-language': 'zh-CN,zh;q=0.9',
    'cookie': 'l=v; buvid3=814C060E-FE71-4DE9-9494-9AAB071A6CC353938infoc; rpdid=|(YuJY)mlRR0J\'ulmJJRmu~); LIVE_BUVID=AUTO7815939508172212; blackside_state=1; SESSDATA=d48f5588%2C1640098202%2Ca1ba8%2A61; bili_jct=b191c28d22553db5cddcf3d5e346dfce; DedeUserID=474351218; DedeUserID__ckMd5=3ae2bdd8036b1b59; sid=k7amn9j5; _uuid=D7D402F4-66ED-53F3-70D7-F966BB23AD2564644infoc; CURRENT_BLACKGAP=1; buvid_fp_plain=814C060E-FE71-4DE9-9494-9AAB071A6CC353938infoc; fingerprint3=ed6d0e5c32432f716869d80460572228; fingerprint=0ef2e232bef7ea64c80047daafe07ed1; fingerprint_s=98e441f41046c995e01d5a0afe498aca; CURRENT_QUALITY=80; video_page_version=v_old_home; buvid_fp=814C060E-FE71-4DE9-9494-9AAB071A6CC353938infoc; i-wanna-go-back=1; b_ut=6; CURRENT_FNVAL=2000; bp_video_offset_474351218=601020118333556205; innersign=0; b_lsid=BF10782FE_17D8F9EB610; bp_t_offset_474351218=601079023816686630; PVID=1',
}
#获取关注所有up信息,尤其是uid。
def get_uplist():
    resp = session.get('https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_dyn_uplist', headers=headers)
    print(resp.text)
    list=jsonpath(resp.json(),"$..[uid,uname]")
    print(list)
    return list


2.然后找到取消关注的post请求,根据up主uid构造data参数,直接提交就能取消关注了。

找到请求接口


根据uid构造data (yourcsrf是用于用户校验的,之后讲,没有的话会校验失败)

data = {
  'fid': '353230307',
  'act': '2',
  're_src': '11',
  'spmid': '333.999.0.0',
  'extend_content': '{"entity":"user","entity_id":353230307}',
  'jsonp': 'jsonp',
  'csrf': yourcsrf
}
def modify(uid):
    data['fid']=uid
    data['extend_content']='{"entity":"user","entity_id":'+uid+'}'
    resp=session.post('https://api.bilibili.com/x/relation/modify', headers=headers, data=data)
    print(resp.text)

提交后,返回成功!

刷新后确实取消关注了

这样就不需要手动点击取消关注了!

3.连起来操作,直接取消所有关注!!!


import requests
from jsonpath import  jsonpath
headers = {
    'authority': 'api.vc.bilibili.com',
    'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',
    'accept': 'application/json, text/plain, */*',
    'sec-ch-ua-mobile': '?0',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36',
    'sec-ch-ua-platform': '"Windows"',
    'origin': 'https://t.bilibili.com',
    'sec-fetch-site': 'same-site',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    'referer': 'https://t.bilibili.com/',
    'accept-language': 'zh-CN,zh;q=0.9',
    'cookie': yourcookie,
}
#获取关注所有up信息,尤其是uid。
def get_uplist():
    resp = session.get('https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/w_dyn_uplist', headers=headers)
    list=jsonpath(resp.json(),"$..[uid,uname]")
    print(list)
    return list
data = {
  'fid': '353230307',
  'act': '2',
  're_src': '11',
  'spmid': '333.999.0.0',
  'extend_content': '{"entity":"user","entity_id":353230307}',
  'jsonp': 'jsonp',
  'csrf': yourcsrf
}
def modify(uid,uname):
    data['fid']=uid
    data['extend_content']='{"entity":"user","entity_id":'+str(uid)+'}'
    session.post('https://api.bilibili.com/x/relation/modify', headers=headers, data=data)
    print(uname,"已经被取消关注")
if __name__ == '__main__':
    session=requests.session()
    while True:
        list=get_uplist()
        if list:
            for i in range(0,len(list),2):
                modify(list[i],list[i+1])
        else:
            break

再进来已经空空如也了


基本上我到这就行了,但是还有两个问题没有讲清楚。cookies的获取要用session模拟登录。


然后还有data里面的字段校验字段 csrf,发现它的值和cookies里面的一个值字段一模一样,就是 bili_jct


这样问题就简单了,只需要模拟登录,然后获取cookies,提出bili_jct做为data里面的csrf


之后更新。一次性写完太累了。


相关文章
TienChin 活动管理-设置活动的默认状态
TienChin 活动管理-设置活动的默认状态
46 0
|
4月前
|
数据安全/隐私保护
使用这个设置,扫码后可立即填入上次提交的内容
已经提交过表单的用户在再次填表时,点击快速填充按钮可立即填入上次提交的内容,从而避免重复输入同样的信息,极大提升填表效率。 此外,开启防作假的图片、视频等数据将不会自动填充,仍需填表人重新拍照上传,确保数据的实时性与真实性。
|
移动开发
微信h5扫码接口范例:多个扫码框支持的办法,通过引入一个参数来区分及使用localStorage保证之前扫到的数据不丢失
微信h5扫码接口范例:多个扫码框支持的办法,通过引入一个参数来区分及使用localStorage保证之前扫到的数据不丢失
122 0
|
数据采集 JavaScript Python
python爬虫示例,获取主页面链接,次级页面链接通过主页面元素获取从而避免js生成变动的值,保存数据分批次避免数据丢失
python爬虫示例,获取主页面链接,次级页面链接通过主页面元素获取从而避免js生成变动的值,保存数据分批次避免数据丢失
114 0
|
搜索推荐 算法
B站被删除的视频,该如何找回来?
B站被删除的视频,该如何找回来?
|
前端开发 安全 JavaScript
【web渗透思路】任意账号的注册、登录、重置、查看
【web渗透思路】任意账号的注册、登录、重置、查看
805 0
【web渗透思路】任意账号的注册、登录、重置、查看
|
前端开发
前端工作小结76-整理订单的重置逻辑
前端工作小结76-整理订单的重置逻辑
84 0
前端工作小结76-整理订单的重置逻辑
|
前端开发
前端工作总结127-删除做个判断操作 成功删除 取消取消
前端工作总结127-删除做个判断操作 成功删除 取消取消
94 0
复制宝贝提示“您填写的保质期截止当前已经小于10天,不允许发布”,如何解决?
以前大淘营就有写过这个问题的文章,之前大淘营给出的解决方案是:在淘宝网上找到相同且日期符合要求的宝贝,然后复制上传到店铺。 现在,大淘营淘宝宝贝复制专家已经升级,增加了一些以前没有的功能,除了找相同的宝贝来复制上传以外,还可以通过以下方式解决: 1、在大淘营淘宝宝贝复制专家下载配置的第二步,勾选“替换属性”,将原宝贝的生产日期替换为淘宝要求内的日期即可。