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


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


相关文章
|
存储 JavaScript 对象存储
oss与cdn的区别与联系
oss与cdn的区别与联系
781 0
|
9月前
|
人工智能 编解码 算法
Doubao-1.5-pro:字节跳动最新豆包大模型,性能超越GPT-4o和Claude 3.5 Sonnet
豆包大模型1.5是字节跳动推出的最新大模型,采用大规模稀疏MoE架构,支持多模态输入输出,具备低时延语音对话能力,综合性能优于GPT-4o和Claude 3.5 Sonnet。
1570 2
Doubao-1.5-pro:字节跳动最新豆包大模型,性能超越GPT-4o和Claude 3.5 Sonnet
|
6月前
|
存储 人工智能 自然语言处理
通义灵码 vs. GitHub Copilot:中国AI编码工具的破局之道
全球AI编码工具形成“双极格局”,GitHub Copilot凭借先发优势主导市场,而通义灵码通过差异化路径突围。技术层面,通义灵码在中文语境理解、云原生绑定上展现优势;生态方面,Copilot依托GitHub开源生态,通义灵码则深耕阿里云企业协同场景;开发者心智战中,通义灵码以数据合规、本土化服务及定制化能力取胜。这场较量不仅是技术的比拼,更是生态逻辑与开发者需求的全面博弈,彰显中国AI编码工具“换道超车”的潜力。
732 19
|
7月前
|
人工智能 安全 UED
【Gemini怎么使用】:Gemini 2.5 PRO flash 国内使用教程来了
超新星——Gemini 2.0!这不仅仅是一次简单的迭代更新,而是一场彻底的、颠覆性的技术革命!
1767 1
|
监控 数据中心
【专栏】交换机电口和光口的定义、特点及应用场景,做网络的这个常识得懂!
【4月更文挑战第28天】本文探讨了交换机电口和光口的定义、特点及应用场景。电口,常见于局域网和办公环境,成本低但传输距离有限;光口,适用于长距离、高速率传输,如城域网、数据中心,具有抗干扰强但成本高的特点。选择接口时需考虑传输距离、速率和成本,注意兼容性、线缆选择及维护管理。理解两者差异有助于网络规划和管理。
1329 0
|
10月前
软考证书如何申报抵税?详细教程来了!
本文介绍了软考证书如何申报个税抵扣的详细教程。根据规定,取得相关证书的当年可按3600元定额扣除。具体步骤包括下载并注册“个人所得税”APP、选择继续教育并填写扣除年度、选择职业资格继续教育类型及填写继续教育信息。未领取纸质证书者也可通过“中国人事考试网”查询信息后申报。
761 0
|
12月前
|
机器学习/深度学习 算法 语音技术
超越传统模型:探讨门控循环单元(GRU)在语音识别领域的最新进展与挑战
【10月更文挑战第7天】随着人工智能技术的不断进步,语音识别已经从一个相对小众的研究领域发展成为日常生活中的常见技术。无论是智能手机上的语音助手,还是智能家居设备,甚至是自动字幕生成系统,都离不开高质量的语音识别技术的支持。在众多用于语音识别的技术中,基于深度学习的方法尤其是递归神经网络(RNNs)及其变体如长短期记忆网络(LSTMs)和门控循环单元(GRUs)已经成为了研究和应用的热点。
497 2
|
搜索推荐 算法 Java
经典排序算法之-----选择排序(Java实现)
这篇文章通过Java代码示例详细解释了选择排序算法的实现过程,包括算法的基本思想、核心代码、辅助函数以及测试结果,展示了如何通过选择排序对数组进行升序排列。
经典排序算法之-----选择排序(Java实现)
|
Ubuntu Linux iOS开发
|
IDE Java 开发工具
【Eclipse安装及使用(面向小白)】
【Eclipse安装及使用(面向小白)】