Я предполагаю, что вы действительно хотите данные в таблице?Этот контент отображается с использованием javascript, поэтому одни запросы не помогут, если вы настроите таргетинг на саму таблицу.
Лучше было бы взять тег из скрипта, тогда вы получите всю актуальную статистику.Ниже я беру эту информацию и помещаю ее в аккуратный фрейм данных для просмотра.
import bs4
import requests
import re
import json
import pandas as pd
url = 'http://espn.com/mlb/team/stats/_/name/wsh'
r = requests.get(url)
page = bs4.BeautifulSoup(r.text, 'lxml')
r = re.compile(r'playerStats":(.*),"teamLeaders"' , re.DOTALL)
data = page.find('script', text=r).text
script = r.findall(data)[0]
players_info = json.loads(script)
player_batting_stats = players_info[0]
expanded_player_batting_stats = players_info[1]
table1 = []
table2 = []
headers = ['Name', 'GP', 'AB', 'R', 'H', '2B', '3B', 'HR', 'RBI', 'TB', 'BB', 'K', 'SB', 'BA', 'OBP', 'SLG', 'OPS', 'WAR']
for player in player_batting_stats:
name = player['athlete']['name']
row = [stat['value'] for stat in player['statGroups']['stats']]
row.insert(0, name)
table1.append(row)
df1 = pd.DataFrame(table1, columns = headers)
print(df1.head())
# repeat for table2 using expanded_player_batting_stats