Web scraping utilizando selenium

Python

estava conseguindo resolver bem uma atividade mas fiquei preso com a parte de preço do produto, coloco a tag e a classe corretamente porem, na hora que tento fazer uma lista os valores ficam desproporcionais

 

 

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time

# Inicializar o Chrome
driver = webdriver.Chrome()

# Abrir o Mercado Livre
driver.get("https://www.mercadolivre.com.br")

# Encontrar o campo de busca pelo ID e inserir o termo de pesquisa "notebook"
campo_pesquisa = driver.find_element(By.ID, "cb1-edit")
campo_pesquisa.send_keys("notebook")
campo_pesquisa.send_keys(Keys.RETURN)

# Aguardar o carregamento
time.sleep(4)

# Obter e imprimir os títulos dos produtos encontrados
produtos = driver.find_elements(By.CLASS_NAME, "ui-search-item__title")
precos = driver.find_elements(By.CLASS_NAME, "andes-money-amount__fraction")

# Verificar se ambos têm o mesmo comprimento
if len(produtos) == len(precos):
    # Combinar produtos e preços em uma lista de tuplas
    lista_combinada = [(produtos[i].text, precos[i].text) for i in range(len(precos))]
    
    # Imprimir a lista combinada
    for produto, preco in lista_combinada:
        print(f"Produto: {produto}, Preço: {preco}")
else:
    print("As listas de preços e produtos não têm o mesmo comprimento.")

# Encerrar o processo
driver.quit()

 

na hora da verificacao sempre aparece que os produtos nao tem o mesmo comprimento mas nao consegui resolver

Foto de Rafael L.
Rafael perguntou há 2 semanas

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
1 resposta
0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Jhonni S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 semana

O problema pode estar ocorrendo porque você está verificando o comprimento das listas de preços e produtos separadamente. Embora ambas as listas devam estar sincronizadas (cada produto tem um preço correspondente), o comprimento pode ser diferente se houver algum atraso no carregamento da página ou se houver algum elemento invisível que está sendo capturado.

 

Tente isso

 

# Verificar se ambos têm o mesmo comprimento
if len(produtos) == len(precos):
    # Combinar produtos e preços em uma lista de tuplas
    lista_combinada = []
    for i in range(len(produtos)):
        # Verificar se o preço está disponível para o produto
        if i < len(precos):
            lista_combinada.append((produtos[i].text, precos[i].text))
        else:
            # Se não houver preço disponível, adicione None como preço
            lista_combinada.append((produtos[i].text, None))
    
    # Imprimir a lista combinada
    for produto, preco in lista_combinada:
        print(f"Produto: {produto}, Preço: {preco}")
else:
    print("As listas de preços e produtos não têm o mesmo comprimento.")

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

Professores particulares de Python

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 65 / h
Jhonni S.
Blumenau / SC
Jhonni S.
5,0 (1 avaliação)
Horas de aulas particulares ministradas 22 horas de aula
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Python - Intermediário Python - Geral Python - dicionário
Graduação: Análise e Desenvolvimento de Sistemas (Unopar)
Aprenda desenvolvimento de sites e sistemas com quem atua há mais de 15 anos no segmento.
R$ 60 / h
César D.
Mogi Guaçu / SP
César D.
4,9 (838 avaliações)
Horas de aulas particulares ministradas 87 horas de aula
Tarefas resolvidas 1.033 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
Programação em Python Básico Python - Geral Programação em Python NumPy
Graduação: Matemática Aplicada e Computacional (Universidade Estadual de Campinas (UNICAMP))
Faça aulas de matemática, computação e programação em c, c++, java e python.
R$ 120 / h
Johny L.
Fortaleza / CE
Johny L.
4,3 (36 avaliações)
Horas de aulas particulares ministradas 102 horas de aula
Tarefas resolvidas 29 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
Programação em Python Básico Programação em Python NumPy Python - tuplas
Graduação: Engenharia Civil (IFCE - Campus Fortaleza)
Professor da UFC - Aulas de estatística práticas e aplicadas ao mercado de trabalho além de acadêmico