В отличие от вашего комментария, данные не заполнены через JS. Две подсказки об этом:
- если вы посмотрите на источник страницы, таблица уже заполнена в вашем браузере html.
- если вы посмотрите на сеть своего браузера, от вашего браузера не будет XHR-запроса на получение данных.
Так что, как сказал @SuperStew, вы можете попробовать его с Beautifulsoup, хотя это может быть немного громоздко, если использовать цикл for для каждого элемента <tr/>
.
Если бы мне нужно было получить эти данные в удобном для использования формате, я бы использовал панд. Пожалуйста, смотрите документацию для метода read_html . Это дает дополнительный бонус, который должен помочь преобразовать данные в нужные вам типы, то есть целые числа. Но, как утверждает документ, вам следует ожидать небольшого спора данных.
редактировать
похоже, что mlbstats блокирует фильтрацию через пользовательский агент, поэтому вам нужно будет использовать запросы с поддельным пользовательским агентом, чтобы получить страницу html:
import pandas as pd
import requests
url = "https://razzball.com/mlbpitchingstats/"
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
response = requests.get(url, headers=headers)
data = pd.read_html(response.content) # will need wrangling