Python 一无所有,一无所有;[……”是;作为对我废话的回应

Python 一无所有,一无所有;[……”是;作为对我废话的回应,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,所以我在试着刮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

所以我在试着刮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)

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


因此,我们需要将其提取并解析为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}

您在其中编写了
soup.find_all('dl',class_u='profile-stats_u条目')
,你认为这到底意味着什么?你是否尝试验证网页的源代码对该搜索有意义?我正在尝试从视频游戏中检索我朋友的统计数据,我试图获取的统计数据在该类下,它们是否在页面源代码中的该类下,即在任何Javascript运行之前?你是否验证了这一点,例如,通过在web浏览器中查看页面并转到“查看源代码”?您能为我解释一下吗,它确实有效,但我真的很想知道它实际上在做什么。@AlexisFuncy实际上它正在提取以下脚本标记
,然后将其解析为
JSON