Help with Indexerror error: list index out of range

Asked

Viewed 12 times

0

class Scraping:
def pesquisar_nome(self):
    while True:
        try:
            self.browser.find_element_by_id('search-key').send_keys(self.Keys.CONTROL, 'a')
            self.browser.find_element_by_id('search-key').send_keys(self.Keys.DELETE)
            self.nome = input('Qual Nome De Produto deseja pesquisar?: ')
            self.browser.find_element_by_id('search-key').send_keys(self.nome)
            self.browser.find_element_by_class_name('search-button').click()
            try:
                self.browser.find_element_by_class_name('zero-result')
                print(f'Desculpe, sua busca {self.nome} não encontrou nenhum produto. Por favor, tente novamente.')
            except: 
                break
        except:
            print('Nome Invalido tente novamente')
    self.coleta_de_dados()
    
def coleta_de_dados(self):
    self.parte_li_class = self.browser.find_elements_by_class_name('list-item')
    while True:
        self.parte_1 = self.browser.find_elements_by_class_name('list-item')[self.c]
        self.c += 1
        self.nome_produto = self.parte_1.find_element_by_class_name('item-title').text
        print(self.nome_produto)
        print('  ')
        self.preco_produto = self.parte_1.find_element_by_class_name('price-current').text
        print(self.preco_produto)
        print('\n')
        with open('arquivo.csv', 'w') as file_arquivo:
            file_arquivo.write(self.nome_produto)

def __init__(self, browser, Keys):
    self.c = 0
    self.Keys = Keys
    self.browser = browser
    self.browser.get('https://pt.aliexpress.com/')
    self.pesquisar_nome()

from selenium.webdriver import Firefox
from selenium.webdriver.common.keys import Keys

browser = Firefox()
Scraping(browser, Keys)

The error "Indexerror: list index out of range" appears in the line "self.parte_1 = self.browser.find_elements_by_class_name('list-item')[self. c]"...

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.