Перечислить индекс вне допустимой ошибки после очистки с помощью Selenium - PullRequest
0 голосов
/ 10 ноября 2018

Код:

team1 = []
team2 = []

url = "https://www.basketball-reference.com/leagues/NBA_2019_games.html"

driver = webdriver.Chrome(executable_path=r"chromedriver.exe")
driver.implicitly_wait(30)
driver.get(url)

soup1 = BeautifulSoup(driver.page_source, 'lxml')

for i in range(len(soup1.find_all('a', href=True, text='Box Score'))):

    driver.find_elements_by_link_text('Box Score')[i].click()
    driver.implicitly_wait(10)

    soup2 = BeautifulSoup(driver.page_source, 'lxml')
    scorebox = soup2.find_all('div',{'class':'scorebox'})[0]

    team1.append(scorebox.find_all('a', itemprop='name')[0].text.strip())
    team2.append(scorebox.find_all('a', itemprop='name')[1].text.strip())

    driver.implicitly_wait(10)
    driver.execute_script("window.history.go(-2)") 

Ошибка:

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-2-b1355c7b0c2e> in <module>()
 12 for i in range(len(soup1.find_all('a', href=True, text='Box Score'))):
 13 
 ---> 14     driver.find_elements_by_link_text('Box Score')[i].click()
 15     driver.implicitly_wait(10)
 16 

 IndexError: list index out of range

Обычно я хочу вычеркнуть названия команд из каждого матча, но затем он останавливается после случайного количества итераций. (Иногда я получаю 10 отсчетов отсчетов, иногда 50, и это останавливается с ошибкой выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...