没有得到任何和“[]”作为对我的网络垃圾的回应

2024-05-23 14:32:40 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在试着刮osu!从我的朋友档案统计,当我尝试运行代码时,我得到“无”这里是代码

from bs4 import BeautifulSoup
import requests



html_text = requests.get('https://osu.ppy.sh/users/17906919').text
soup = BeautifulSoup(html_text, 'lxml')
stats = soup.find_all('dl', class_ = 'profile-stats__entry')
print(stats)

Tags: 代码textfromhttpsimportgethtmlstats
1条回答
网友
1楼 · 发布于 2024-05-23 14:32:40

所需的数据实际上在HTML源中的以下脚本标记下显示”

<script id="json-user" type="application/json">

因此,我们需要将其提取并解析为JSON,如下所示:

import requests
from bs4 import BeautifulSoup
from pprint import pprint as pp
import json


def main(url):
    r = requests.get(url)
    soup = BeautifulSoup(r.text, 'lxml')
    goal = json.loads(soup.select_one('#json-user').string)
    pp(goal['statistics'])


main('https://osu.ppy.sh/users/17906919')

输出:

{'country_rank': 18133,
 'global_rank': 94334,
 'grade_counts': {'a': 159, 's': 99, 'sh': 9, 'ss': 6, 'ssh': 2},
 'hit_accuracy': 97.9691,
 'is_ranked': True,
 'level': {'current': 83, 'progress': 84},
 'maximum_combo': 896,
 'play_count': 9481,
 'play_time': 347925,
 'pp': 3868.29,
 'rank': {'country': 18133},
 'ranked_score': 715205885,
 'replays_watched_by_others': 0,
 'total_hits': 1086843,
 'total_score': 3896191620}

相关问题 更多 >