Моя текущая проблема состоит в том, чтобы определить, как использовать BeautifulSoup и Selenium для веб-очистки веб-сайта киберспорта под названием Rocket League eSports.
Я могу найти данные и использую Selenium из-за сценариев, используемых на их веб-странице. Затем я использую BeautifulSoup, чтобы получить данные. Отсюда я могу экспортировать все названия команд, но при добавлении в список я получаю «Нет».
from selenium import webdriver
from bs4 import BeautifulSoup
#import soupsieve
import time
#create a Google Chrome session
browser =
webdriver.Chrome(executable_path='/home/jdr1018/chromedriver')
#maximizes Google Chrome window
browser.maximize_window()
#fetches the URL
browser.get('https://www.rocketleagueesports.com/stats/')
#pause to allow page to load
time.sleep(4)
#search the container and find all elements with h5 tag to print
given elements
#container = browser.find_elements_by_tag_name('h5')
#hand over Selenium page source to Beautiful BeautifulSoup
soup_source = BeautifulSoup(browser.page_source, 'lxml')
namelist = [] #empty list for Team names
winpercentlist = [] #empty list for Win Percentage
rocketleaguedict = {} #empty dict for namelist + winpercentlist
#using XPath to find h5 element with class name and assinging it to
teamnames
elements = browser.find_elements_by_xpath('//h5[@class="name"]/a')
teamnames = [element.text for element in elements]
#loop through team names to get each individual team name
for name in teamnames:
#if statement to determine if name is already in the list
if name in namelist:
#append each team name through loop into empty list.
pass
else:
namelist.append(name)
#return namelist to verify
return namelist
#for i in container:
#print(i.get_attribute("innerHTML"))
#once program is done close Google Chrome
browser.close()}
Мой вывод выглядит примерно так:
['CHIEFS ESPORTS CLUB']
['CHIEFS ESPORTS CLUB', 'NRG ESPORTS']
['CHIEFS ESPORTS CLUB', 'NRG ESPORTS', 'ICON ESPORTS']
['CHIEFS ESPORTS CLUB', 'NRG ESPORTS', 'ICON ESPORTS', 'RENAULT SPORT
TEAM VITALITY']
['CHIEFS ESPORTS CLUB', 'NRG ESPORTS', 'ICON ESPORTS', 'RENAULT SPORT
TEAM VITALITY', 'ERODIUM']
['CHIEFS ESPORTS CLUB', 'NRG ESPORTS', 'ICON ESPORTS', 'RENAULT SPORT
TEAM VITALITY', 'ERODIUM', 'LOWKEY ESPORTS'] ...
Это не совсем так, но дело в том, что они куча этих "Ни одного", и я не могу точно понять, почему.