B站协议批量删除动态实现
b站登录协议请看点方蓝色字体
文章结尾附Python代码
一、抓包
1.1删除动态包
POST请求 https://api.bilibili.com/x/dynamic/feed/operate/remove?platform=web&csrf=3bdb2bda73e3d6f75ea991167fb39389
请求表单数据{"dyn_id_str":"967767049365356551","dyn_type":1,"rid_str":"967767049365356551"}
csrf——从登录Cookie中获取
dyn_id_str、rid_str——动态id
dyn_type——1:删除
响应结果
b站协议所有出现这样的响应都表示成功
1.2动态协议获取包
dm_img_list
dm_img_str
dm_cover_img_str
dm_img_inter
w_rid
wts
涉及到的算法较多,请看本专栏的B站协议各参数算法加密文章
响应结果
id_str—— 删除动态所需要的id
二、Python实现
2.1动态id
def get_act_data(cookie, dm_img_list, dm_img_str, dm_cover_img_str, dm_img_inter, w_rid, wts):
url = "https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space"
# 构造请求参数
params = {
"offset": "",
"host_mid": "484733984",
"timezone_offset": "-480",
"platform": "web",
"features": "itemOpusStyle,listOnlyfans,opusBigCover,onlyfansVote,decorationCard,forwardListHidden,ugcDelete,onlyfansQaCard",
"web_location": "333.999",
"dm_img_list": dm_img_list,
"dm_img_str": dm_img_str,
"dm_cover_img_str": dm_cover_img_str,
"dm_img_inter": dm_img_inter,
"x-bili-device-req-json": '{"platform":"web","device":"pc"}',
"x-bili-web-req-json": '{"spm_id":"333.999"}',
"w_rid": w_rid,
"wts": wts
}
# 构造请求头,cookie
headers = {
"Cookie": cookie
}
# 发送GET请求
response = requests.get(url, params=params, headers=headers)
if response.status_code == 200:
return response.json()
else:
return '获取失败'
2.2删除动态
def remove(cookie, csrf, dyn_id_str, rid_str):
url = "https://api.bilibili.com/x/dynamic/feed/operate/remove"
# 请求参数
params = {
"platform": "web",
"csrf": csrf
}
# 表单数据
data = {
"dyn_id_str": dyn_id_str,
"dyn_type": 1,
"rid_str": rid_str
}
# 请求头,cookie
headers = {
"Cookie": cookie,
"Content-Type": "application/x-www-form-urlencoded"
}
# 发送POST请求
response = requests.post(url, params=params, data=data, headers=headers)
if response.status_code == 200:
return response.json()
else:
return "删除失败"