b站个人主页中的播放输、获赞数、充电数怎么提取呀,b站个人主页中的播放输、获赞数、充电数怎么提取呀



关注引自免费微信小程序:皆我百晓生
要从B站个人主页提取播放数、获赞数和充电数,可以使用Python的requests库进行网络请求,以及BeautifulSoup库解析HTML。根据提供的信息,我们可以看到数据可能通过API接口返回,也可能直接在HTML页面中。这里提供两种方法:一种是通过解析API接口返回的数据,另一种是直接从HTML页面中提取。
假设API返回的数据结构如你所展示的那样,可以通过如下方式解析:
import json
# 假设这是API返回的数据
data = {
"data": {
"card": {
"mid": 123456,
"name": "用户名",
"sex": "男",
"face": "https://example.com/avatar.jpg",
"fans": 10000,
"attention": 5000,
"sign": "个性签名",
# 注意这里的键名可能与实际不符,需要根据真实数据调整
"n-data-v": "播放数",
"n-data-p": "获赞数"
}
}
}
# 解析数据
try:
id = data['data']['card']['mid']
name = data['data']['card']['name']
sex = data['data']['card']['sex']
face = data['data']['card']['face']
fans = data['data']['card']['fans']
attention = data['data']['card']['attention']
sign = data['data']['card']['sign']
view = data['data']['card'].get('n-data-v', '未知')
praise = data['data']['card'].get('n-data-p', '未知')
print(f"id: {id}")
print(f"姓名:{name}")
print(f"性别:{sex}")
print(f"头像:{face}")
print(f"粉丝数:{fans}")
print(f"关注数:{attention}")
print(f"标题数:{sign}")
print(f"播放数:{view}")
print(f"获赞数:{praise}")
except KeyError as e:
print("无法解析响应数据")
对于HTML页面,可以使用BeautifulSoup库来解析并提取所需信息:
import requests
from bs4 import BeautifulSoup
# 请求URL(替换成实际的B站个人主页URL)
url = 'https://space.bilibili.com/123456'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取充电数
battery_element = soup.find("span", class_="elec-total-c-num")
battery = battery_element.text if battery_element else '未知'
# 提取获赞数和播放数
praise_element = soup.find("p", class_="n-data-v", title=lambda x: "获赞" in x if x else False)
view_element = soup.find("p", class_="n-data-v", title=lambda x: "播放数" in x if x else False)
praise = praise_element.text if praise_element else '未知'
view = view_element.text if view_element else '未知'
print(f"充电数:{battery}")
print(f"获赞数:{praise}")
print(f"播放数:{view}")
请注意,以上代码中的选择器和键名可能需要根据实际网页结构和API返回的数据结构调整。如果页面结构或API返回的数据格式有变化,可能需要相应地调整解析逻辑。