Python 基于哔哩哔哩公布的API,抓取UID为1~10的用户对应的直播间ID。
时间: 2024-09-15 15:02:14 浏览: 417
在Python中,你可以使用`requests`库来发送HTTP请求,并利用Bilibili API获取指定用户的直播间信息。首先,你需要注册并申请到B站开发者平台的API key和secret,然后才能访问他们的数据。
以下是一个基本的步骤示例:
1. 安装所需的库:
```bash
pip install requests
```
2. 导入必要的模块:
```python
import requests
import json
from typing import List
```
3. 创建一个函数,用于获取单个用户的直播间ID:
```python
def get_user_room_ids(uid: int, api_key: str) -> List[int]:
base_url = "https://api.bilibili.com/x/space/arc/search"
params = {
"mid": uid,
"pn": 1, # 每页数量,默认10,这里可以修改
"ps": 10,
"order": "pubdate", # 排序方式
"keyword": "",
"jsonp": "jsonp" # B站需要jsonp格式返回
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
"Content-Type": "application/json; charset=UTF-8",
"Referer": "https://space.bilibili.com/" + str(uid),
"Authorization": f"Bearer {api_key}", # 这里替换为你实际的API key
}
response = requests.get(base_url, params=params, headers=headers)
data = json.loads(response.text)
room_ids = [item["aid"] for item in data["result"]["data"]]
return room_ids
```
4. 调用函数并处理结果:
```python
# 将1到10的用户ID放入列表
uids = list(range(1, 11))
room_ids_list = []
for uid in uids:
room_ids = get_user_room_ids(uid, "YOUR_API_KEY") # 替换为你的API key
room_ids_list.extend(room_ids)
print(f"用户{uids}的直播间ID: {room_ids_list}")
阅读全文