Beautiful Soup不会解析所有标签

问题描述 投票:0回答:1

我已附上我要抓取的网站HTML的屏幕截图,其中有一个表,我想从其中的行(它们显然存在)中获取一些数据,但是,它无法正常工作,因此我决定打印tbody,这表明分析发现表和tbody,但未找到其中的行。我不知道如何解决此问题,将不胜感激。HTML from wesbite

Output when printing body

这是我的代码的开头:

url = "https://superfpl.com/player_stats"

results = requests.get(url)

soup = BeautifulSoup(results.text, "html.parser")

players = []

teams = []

positions = []

ownerships = []

print(soup.find("tbody"))

player_div = soup.find_all('tr', role_="row",  class_="odd")
python web-scraping beautifulsoup html-table html-parsing
1个回答
0
投票

数据通过JavaScript动态加载。但是您可以使用requests模块进行模拟:

import requests

url = 'https://superfpl.com/ajax/player_stats'
data = requests.get(url).json()

# uncomment this to see all data (WARNING, huge list!):
# import json
# print(json.dumps(data, indent=4))

# pretty print some data to screen:
for row in data['data']:
    print('{:<20}{:<20}{:<20}'.format(row['web_name'], row['position'], row['points_per_game']))

打印:

Connolly            FWD                 2.4                 
Cresswell           DEF                 2.7                 
Lennon              MID                 0.9                 
Mooy                MID                 2.9                 
Ramsdale            GKP                 3.4                 
Wan-Bissaka         DEF                 3.3                 
Koiki               DEF                 0.0                 
Doucouré            MID                 3.3                 
Idah                FWD                 1.3                 
Lallana             MID                 1.8                 
Masina              DEF                 2.8                 
Adam Smith          DEF                 2.2                 

... and so on.
© www.soinside.com 2019 - 2024. All rights reserved.