B站网页部分API
https://www.bilibili.com/
数据结构
mid: 用户id
name: 用户名
face: 用户头像url noface.jpg为默认头像
sign: 签名level: b站等级
coins: b站硬币
粉丝
https://api.bilibili.com/x/relation/fans?vmid={mid}&pn={pn}&ps={limit}&order=desc&gaia_source=main_web&web_location={web_location}&w_rid={wrid}&wts={wts}获取指定mid(用户ID)的最新粉丝列表。
:param mid: 用户ID,表示要查询mid的粉丝。
:param pn: 页码,表示要查询的粉丝列表的页码。
:param limit: 页面大小,即每页显示的粉丝数量。默认为20。
:param web_location: 默认为 1550101。
:param wrid: 网络参数
:param wts: 当前毫秒数
:return: 返回一个包含最新粉丝信息的列表(具体返回格式取决于数据源)。
关注
https://api.bilibili.com/x/relation/followings?vmid={mid}&pn=1&ps={limit}&order=desc&gaia_source=main_web&web_location={web_location}&w_rid={wrid}&wts={wts}获取mid的最新关注。
参数同上
个人信息
https://api.bilibili.com/x/space/wbi/acc/info?mid={mid}&token=&platform=web&web_location={web_location}&dm_img_list={dm_img_list}dm_img_str={dm_img_str}&dm_img_inter={dm_img_inter}&w_rid={wrid}&wts={wts}获取mid的个人信息。
:param dm_img_str: 可默认为 "V2ViR0wgMS4wIChPcGVuR0wgRVMgMi4wIENocm9taXVtKQ"。
:param dm_cover_img_str: 可默认为 "QU5HTEUgKEludGVsLCBJbnRlbChSKSBVSEQgR3JhcGhpY3MgNjMwICgweDAwMDAzRTlCKSBEaXJlY3QzRDExIHZzXzVfMCBwc181XzAsIEQzRDExKUdvb2dsZSBJbmMuIChJbnRlbC"。
:param dm_img_inter: 可默认为 "{\"ds\":[],\"wh\":[3256,5442,64],\"of\":[495,990,495]}"。
代码示例
获取wrid与wts
import urllib.parse
import hashlib
import timedef w_rid(param):e = "7cd084941338484aae1ad9425b84077c4932caff0ff746eab6f01bf08b70ac45"c = ''.join([e[i] for i in [46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49, 33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11, 36, 20, 34, 44, 52]])c = c[:32]u = int(time.time()) param["wts"] = uf = [f"{urllib.parse.quote(str(k).encode('utf-8'))}={urllib.parse.quote(str(v).encode('utf-8'))}" for k,v in sorted(param.items())]y = '&'.join(f)return hashlib.md5((y+c).encode(encoding='utf-8')).hexdigest(), uprint(w_rid({"mid": 1111111,"token": "","platform": "web","web_location": 1550101,"dm_img_list": "[]","dm_img_str": "V2ViR0wgMS4wIChPcGVuR0wgRVMgMi4wIENocm9taXVtKQ","dm_cover_img_str": "QU5HTEUgKEludGVsLCBJbnRlbChSKSBVSEQgR3JhcGhpY3MgNjMwICgweDAwMDAzRTlCKSBEaXJlY3QzRDExIHZzXzVfMCBwc181XzAsIEQzRDExKUdvb2dsZSBJbmMuIChJbnRlbC","dm_img_inter": "{\"ds\":[],\"wh\":[3256,5442,64],\"of\":[495,990,495]}"
}
))
网络请求
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36','Cookie': Cookie
}
web_location = 1550101
dm_img_str = "V2ViR0wgMS4wIChPcGVuR0wgRVMgMi4wIENocm9taXVtKQ"
dm_cover_img_str = "QU5HTEUgKEludGVsLCBJbnRlbChSKSBVSEQgR3JhcGhpY3MgNjMwICgweDAwMDAzRTlCKSBEaXJlY3QzRDExIHZzXzVfMCBwc181XzAsIEQzRDExKUdvb2dsZSBJbmMuIChJbnRlbC"
dm_img_inter = "{\"ds\":[],\"wh\":[3256,5442,64],\"of\":[495,990,495]}"url = f"https://api.bilibili.com/x/space/wbi/acc/info?mid={mid}&token=&platform=web&web_location={web_location}&dm_img_list=[]&dm_img_str={dm_img_str}&dm_cover_img_str={dm_cover_img_str}&dm_img_inter={dm_img_inter}&w_rid={wrid}&wts={wts}"
headers["Accept"] = "*/*"
headers["Origin"] = "https://space.bilibili.com"
headers["Referer"] = f"https://space.bilibili.com/{mid}"session = requests.Session()
response = session.get(url,headers=headers)if response.status_code == 200: print(response.text)session.close()
代码
https://github.com/guanyuespace/BiliBili_Profile.git