Очистка и извлечение данных о результатах NBA Sports Reference с использованием класса и идентификатора.Python

Программы на Python
Anonymous
 Очистка и извлечение данных о результатах NBA Sports Reference с использованием класса и идентификатора.

Сообщение Anonymous »

Недавно я работал над сборщиком результатов матчей НБА на сайте www.basketball-reference.com и новичок в Beautiful Soup. Я пытался использовать виджеты, однако многие из них сломаны, и это не вариант. Итак, я попробовал альтернативные методы извлечения двух таблиц статистики. Есть код, который работает, например, для некоторых из них
import requests
import pandas as pd
from bs4 import BeautifulSoup
url = 'Https://www.basketball-reference.com/bo ... 0MIL.html/'
html = requests.get(url).text.replace('', '')
df1 = pd.read_html(html)[7]
df2 = pd.read_html(html)[12]
print(df1)
print(df2)

Вывод двух фреймов данных, например, выведенный этим, является моим желаемым результатом.
Хотя это работает в конкретных играх, расположение таблиц несколько непоследовательно в разных играх и годах. Таким образом, для альтернативных ссылок число либо выходит за пределы, либо возвращает неправильную таблицу. Я пытался включить множество исключений, которые ведут к разным местам, однако это довольно громоздко, медленно и неэффективно.
Однако, насколько я могу судить, структура класса и идентификатора во всех случаях одинакова, или, по крайней мере, они намного более последовательны. Однако я не могу придумать способ их универсального извлечения. В конечном итоге мне нужны обе основные таблицы результатов, извлеченные полностью (включая итоги команды) в два отдельных фрейма данных из любой потенциальной игровой ссылки. В моих входных данных есть названия обеих команд, и я считаю, что трехбуквенные сокращения включены в идентификаторы, поэтому я могу использовать их как таковые.
Если кто-нибудь может помочь с этим, это было бы здорово. Ниже в качестве примеров я предоставил несколько других игр с альтернативными структурами.
https://www.basketball-reference.com/bo ... 0ORL.html/
https://www.basketball-reference.com/bo ... 0BOS.html/
https://www.basketball-reference.com/bo ... 0TRI.html/


Подробнее здесь: https://stackoverflow.com/questions/735 ... ass-and-id

Вернуться в «Python»