Здесь новичок в Python. Я учился парсить данные с различных бейсбольных сайтов (Fangraphs, Statcast, Rotowire). Я добился успеха с помощью нескольких различных методов, но таблица Park Factors в Statcast вызывает у меня проблемы. Я пробовал использовать Selenium и пытался сохранить локальную HTML-копию сайта на своем компьютере, чтобы попрактиковаться, не отправляя повторные запросы на сервер Statcast. Приведенный ниже скрипт очищает таблицу по URL-адресу, но я думаю, что это первый вариант, просто подсчет очков в игре.
Код: Выделить всё
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd
from io import StringIO
# Set your user agent information
headers = {
"User-Agent": "FirstName LastName "
}
# Set the URL of the webpage containing the park factors
url = "https://baseballsavant.mlb.com/leaderboard/statcast-park-factors?type=year&year=2024&
batSide=L&stat=index_wOBA&condition=All&rolling="
# Initialize the WebDriver (e.g., for Firefox)
driver = webdriver.Firefox()
# Navigate to the URL
driver.get(url)
# Wait for the table to be loaded (adjust the timeout as needed)
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, "table")))
# Extract the table data
table = driver.find_element(By.TAG_NAME, "table")
table_html = table.get_attribute("outerHTML")
# Use pandas to read the HTML table
df = pd.read_html(StringIO(table_html))[0]
# Close the WebDriver
driver.quit()
# Display the DataFrame
print(df)
Я хочу очистить большую таблицу «Парковые факторы», в которой перечислены все стадионы команд и есть статистика по таким элементам, как «wOBACon» и «BACON». Я попытался это сделать, обратившись к тегу «таблица», но, похоже, он так и не распознал эту таблицу. Я попытался проиндексировать таблицы, но мне пришло сообщение об ошибке, что мой индекс выходит за пределы допустимого диапазона. Я также пытался использовать ID вместо TAG_NAME и ссылаться на «parkFactors», но безрезультатно. Он просто говорит, что не находит объекта с этим атрибутом (не распознает существующую таблицу). Я пытался обойти это, увеличив время неявного ожидания загрузки динамически загружаемой таблицы, но безуспешно). Я также безуспешно пытался ссылаться на теги классов «article-template» и «table-savant». Любая помощь очень ценится!
Подробнее здесь:
https://stackoverflow.com/questions/783 ... -in-python