import requests

def search_user(keyword):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
        'Referer': 'https://www.bilibili.com/',
        'Cookie': 'YOUR_COOKIE_HERE'  # 请替换为有效的Cookie
    }

    params = {
        'keyword': keyword,
        'search_type': 'bili_user',  # 指定搜索类型为用户
        'page': 1
    }

    url = 'https://api.bilibili.com/x/web-interface/search/type'

    try:
        response = requests.get(url, headers=headers, params=params)
        response.raise_for_status()
        data = response.json()
        print("API响应:", data)  # 调试输出

        # 检查API返回状态码
        if data.get('code') != 0:
            print(f"搜索失败:{data.get('message')}")
            return None

        result_data = data.get('data', {})
        if not result_data.get('result'):
            print("未找到相关用户")
            return None

        # 获取用户列表并提取第一个用户的mid
        user_list = result_data.get('result', [])
        if not user_list:
            print("搜索结果为空")
            return None

        first_user = user_list[0]
        uid = first_user.get('mid')
        if not uid:
            print("用户ID字段缺失")
            return None

        print(f"找到用户:{first_user.get('uname')},UID:{uid}")
        return uid

    except requests.exceptions.RequestException as e:
        print(f"请求失败:{str(e)}")
        return None

def get_user_info(uid):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
        'Referer': f'https://space.bilibili.com/{uid}/',
        'Cookie': 'YOUR_COOKIE_HERE'  # 请替换为有效的Cookie
    }

    params = {'mid': uid}
    url = 'https://api.bilibili.com/x/space/acc/info'

    try:
        response = requests.get(url, headers=headers, params=params)
        response.raise_for_status()
        data = response.json()
        print("用户信息响应:", data)  # 调试输出

        if data.get('code') != 0:
            print(f"获取信息失败:{data.get('message')}")
            return

        user_data = data.get('data', {})
        print(f"用户昵称:{user_data.get('name')}")
        print(f"关注数:{user_data.get('following')}")
        print(f"粉丝数:{user_data.get('follower')}")

    except requests.exceptions.RequestException as e:
        print(f"请求失败:{str(e)}")

def main():
    keyword = input("请输入要搜索的用户关键词:")
    if uid := search_user(keyword):
        get_user_info(uid)

if __name__ == "__main__":
    main()

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐