bilibili-API-collect
bilibili-API-collect copied to clipboard
获取指定用户关注的所有用户
因为B站的反爬虫机制,使用以下API最多只能获取500个关注用户:
https://api.bilibili.com/x/relation/followers?vmid=xxxx&pn=1&ps=50&order=desc
https://api.bilibili.com/x/relation/followers?vmid=xxxx&pn=1&ps=50&order=asc
最近发现似乎可以通过以下API来获取所有关注用户:
https://account.bilibili.com/api/member/getCardByMid?mid=xxxx
以B站用户ID 20183900举例,该用户的关注列表总共含有1998人, 访问以上API:
https://account.bilibili.com/api/member/getCardByMid?mid=20183900
{
"ts": 1658292082,
"code": 0,
"card": {
"mid": "20183900",
"name": "寄思",
"approve": false,
"sex": "保密",
"rank": "10000",
"face": "http://i2.hdslb.com/bfs/face/50e82e1e46fbefc5ddf7e39e3d8231a9d5d2859e.jpg",
"coins": 14.8,
"DisplayRank": "10000",
"regtime": 1450965246,
"spacesta": 0,
"place": "",
"birthday": "2002-02-25",
"sign": "如果我不D,怎么遇见你?",
"description": "",
"article": 0,
"attentions": [], // 1998 items
"fans": 3310,
"friend": 1998,
"attention": 1998,
"level_info": {
"next_exp": -1,
"current_level": 6,
"current_min": 28800,
"current_exp": 30379
},
"pendant": {
"pid": 2488,
"name": "新科娘",
"image": "http://i2.hdslb.com/bfs/garb/item/9b79619a952eb454909088360b147aa1a09ec7cf.png",
"expire": 0
},
"official_verify": {
"type": -1,
"desc": ""
},
"nameplate": {
"nid": 74,
"name": "大会员2018年度勋章",
"image": "http://i1.hdslb.com/bfs/face/421179426c929dfeaed4117461c83f5d07ffb148.png",
"image_small": "http://i0.hdslb.com/bfs/face/682001c2e1c2ae887bdf2a0e18eef61180c48f84.png",
"level": "稀有勋章",
"condition": "2018.6.26-7.8某一天是年度大会员"
}
}
}
我们可以看到 attentions field返回了1998个用户的·uid
据不完全测试,只能获取部分用户关注的所有用户
经过一些特殊的测试,发现不能获取设置了人关注可见性隐私的用户关注列表
爬出来的用户数是否真的为关注用户数量?我把爬出来的数字存进数组,查看数组发现,比实际的attentions多出很多。