bilibili-API-collect icon indicating copy to clipboard operation
bilibili-API-collect copied to clipboard

获取指定用户关注的所有用户

Open Hugozys opened this issue 3 years ago • 2 comments

因为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

Hugozys avatar Jul 20 '22 04:07 Hugozys

据不完全测试,只能获取部分用户关注的所有用户

JmmyLi avatar Jul 20 '22 09:07 JmmyLi

经过一些特殊的测试,发现不能获取设置了人关注可见性隐私的用户关注列表

SocialSisterYi avatar Jul 20 '22 14:07 SocialSisterYi

爬出来的用户数是否真的为关注用户数量?我把爬出来的数字存进数组,查看数组发现,比实际的attentions多出很多。

LilithSeraphim avatar Sep 11 '23 02:09 LilithSeraphim