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


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


相关文章
|
数据采集 Web App开发 存储
Selenium库编写爬虫详细案例
Selenium库编写爬虫详细案例
|
10月前
|
人工智能 编解码 算法
Doubao-1.5-pro:字节跳动最新豆包大模型,性能超越GPT-4o和Claude 3.5 Sonnet
豆包大模型1.5是字节跳动推出的最新大模型,采用大规模稀疏MoE架构,支持多模态输入输出,具备低时延语音对话能力,综合性能优于GPT-4o和Claude 3.5 Sonnet。
1776 2
Doubao-1.5-pro:字节跳动最新豆包大模型,性能超越GPT-4o和Claude 3.5 Sonnet
|
3月前
|
数据采集 人工智能 定位技术
分享一个开源的MCP工具使用的AI Agent 支持常用的AI搜索/地图/金融/浏览器等工具
介绍一个开源可用的 MCP Tool Use 通用工具使用的 AI Agent (GitHub: https://github.com/AI-Agent-Hub/mcp-marketplace ,Web App https://agent.deepnlp.org/agent/mcp_tool_use,支持大模型从Open MCP Marketplace (http://deepnlp.org/store/ai-agent/mcp-server) 的1w+ 的 MCP Server的描述和 Tool Schema 里面,根据用户问题 query 和 工具 Tool描述的 相关性,选择出来可以满足
|
监控 数据中心
【专栏】交换机电口和光口的定义、特点及应用场景,做网络的这个常识得懂!
【4月更文挑战第28天】本文探讨了交换机电口和光口的定义、特点及应用场景。电口,常见于局域网和办公环境,成本低但传输距离有限;光口,适用于长距离、高速率传输,如城域网、数据中心,具有抗干扰强但成本高的特点。选择接口时需考虑传输距离、速率和成本,注意兼容性、线缆选择及维护管理。理解两者差异有助于网络规划和管理。
1468 0
|
10月前
|
机器学习/深度学习 数据可视化 PyTorch
PyTorch FlexAttention技术实践:基于BlockMask实现因果注意力与变长序列处理
本文介绍了如何使用PyTorch 2.5及以上版本中的FlexAttention和BlockMask功能,实现因果注意力机制与填充输入的处理。通过attention-gym仓库安装相关工具,并详细展示了MultiheadFlexAttention类的实现,包括前向传播函数、因果掩码和填充掩码的生成方法。实验设置部分演示了如何组合这两种掩码并应用于多头注意力模块,最终通过可视化工具验证了实现的正确性。该方法适用于处理变长序列和屏蔽未来信息的任务。
377 17
|
11月前
|
SQL 前端开发 关系型数据库
阿里云百炼|析言GBI:产品博士的智能分析利器
本文介绍了阿里云“云知道”平台的云指针频道如何利用大模型实现从自然语言到SQL的转换,从而快速提供数据分析服务。通过阿里云AnalyticDB PostgreSQL版数据库存储数据,并结合析言GBI产品能力,实现了高效的数据查询与可视化展示。
1693 10
|
JavaScript C# 开发工具
20款VS Code实用插件推荐
20款VS Code实用插件推荐
483 0
|
定位技术
简直完美!百度文库付费文档可以免费下载了!
hello,大家好,我是Jackpop,感谢您对平凡而诗意的关注。 今天,来跟大家聊一下百度文库。 我感觉百度文库是一个经久不衰的话题,蕴含着大量有价值的内容,尤其是对在校学生、教师等人员,非常有价值。
简直完美!百度文库付费文档可以免费下载了!
|
IDE Java 开发工具
【Eclipse安装及使用(面向小白)】
【Eclipse安装及使用(面向小白)】
|
数据库 数据安全/隐私保护 Python
django数据库迁移和创建超级管理员
django数据库迁移和创建超级管理员
250 0