Я нашел одно решение. Вы должны использовать селен webdriver
в режиме headless
, получить page_source
из драйвера и дать time.sleep()
. Я проверил данные, которые он показывает, как и ожидалось.
Однако я не знаю ваш список URL, поэтому вы можете создать свой список и попробовать его. Дайте мне знать, если вам нужна дополнительная помощь.
from selenium import webdriver
from bs4 import BeautifulSoup
import time
teamlinks=['http://www.premierleague.com//clubs/1/Arsenal/squad?se=79','http://www.premierleague.com//clubs/1/Arsenal/squad?se=54']
playerLink1 = []
playerLink2 = []
for i in range(len(teamlinks)):
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('window-size=1920x1080');
driver = webdriver.Chrome(options=chrome_options)
driver.get(teamlinks[i])
time.sleep(10)
squadPage=driver.page_source
soup = BeautifulSoup(squadPage, 'html.parser')
playerLocation = soup.findAll('a', class_=re.compile("playerOverviewCard"))
for i in range(len(playerLocation)):
#Save the link, complete with domain.
playerLink1.append("http://www.premierleague.com/" +
playerLocation[i]['href'] + '?se=79')
#For the second link, change the page from player overview to stats
playerLink2.append(playerLink1[i].replace("overview", "stats"))
driver.quit()
print(playerLink2)