Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] No se descargan todas las imagenes y el valores se repiten

Hola,

Estoy teniendo un inconveniente con mi código, ya que al ejecutarlo solo descarga 4 de las 48 imágenes, y una de ellas está incorrecta. He revisado el código paso a paso y no logro identificar errores adicionales, aunque parece que la estructura de la página de donde se extraen los datos ha cambiado.

Al crear el dataframe, este se genera sin problemas, pero noto que el código no recorre cada uno de los elementos correctamente: en cada iteración guarda la misma información del primer elemento o imagen, y solo cambia el modelo en cada entrada.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

2 respuestas

Hola Francisco, espero que este bién

Lo siento por esta teniendo problema , por causa de la pagina. Lo que esta de errado en su codigo es el for. Las class no están correcta.

El correcto seria:

from urllib.request import urlopen, urlretrieve
from bs4 import BeautifulSoup
import pandas as pd

url = 'https://carros.tucarro.com.co/atlantico/_all*payment*methods*discount_cash*discount'
response = urlopen(url)
html = response.read()
soup = BeautifulSoup(html, 'html.parser')

anuncios = soup.findAll('div', class_ = 'andes-card poly-card poly-card--grid-card andes-card--flat andes-card--padding-0 andes-card--animated')

cards = []

for anuncio in anuncios:
  card = {}
  card['Modelo'] = anuncio.find('h2').getText()
  card['Valor'] = infos.find('div', class_ = 'poly-price__current').getText()
  card['Año'] = infos.findAll('li', class_ = 'poly-attributes-list__item poly-attributes-list__bar')[0].getText()
  card['Kilometraje'] = infos.findAll('li', class_ = 'poly-attributes-list__item poly-attributes-list__bar')[1].getText()
  card['Localización'] = infos.find('span', class_ = 'poly-component__location').getText()
  cards.append(card)
  image = anuncio.find('img')
  image.get('src')
  urlretrieve(image.get('src'), '/content/output/img/' + image.get('src').split('/')[-1])

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!

Tengo el siguiente error con el código proporcionado. Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad