Страница, с которой вы взаимодействуете, сильно зависит от javascript для отображения его содержимого.Данные, которые вы ищете, не будут отображаться в ответе, который вы получите с помощью requests
, потому что они не оценивают javascript.
Для достижения этого вам необходимо использовать что-то, что делает, например, Selenium WebDriver.Вот решение, использующее его и безголовый экземпляр Chrome.В дополнение к установке модуля selenium
вам потребуется загрузить ChromeDriver и изменить следующий код, чтобы он указывал на расположение, в которое вы извлекли его:
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(
options=options, executable_path=r"C:\chromedriver\chromedriver.exe"
)
try:
driver.get("https://www.eredmenyek.com/foci/nemetorszag/bundesliga/")
soup = BeautifulSoup(driver.page_source, "html.parser")
for row in soup.select(".stats-table-container tr"):
print("\t".join([e.text for e in row.select("td")]))
finally:
driver.quit()
Результат:
1. Borussia Dortmund 20 15 4 1 51:20 49
2. Mönchengladbach 20 13 3 4 41:18 42
3. Bayern München 20 13 3 4 44:23 42
4. RB Leipzig 20 11 4 5 38:18 37
5. Frankfurt 20 9 5 6 40:27 32
...