Herramientas de usuario

Herramientas del sitio


taller-web-scraping-hirikilabs:coches

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
Última revisiónAmbos lados, revisión siguiente
taller-web-scraping-hirikilabs:coches [2018/02/07 19:00] hmeleirostaller-web-scraping-hirikilabs:coches [2018/02/07 19:41] hmeleiros
Línea 1: Línea 1:
-## Breve estudio sobre coches de segunda mano+====== Scrapeo coches.net ====== 
 + --- //[[https://twitter.com/hmeleiros?lang=es|Héctor Meleiro]] 2018/02/07 19:40//
  
 El objetivo de este proyecto es scrapear el portal de compra-venta de coches coches.net con la idea de hallar precios medios de coches de segunda mano por provincias y por marcas. El objetivo de este proyecto es scrapear el portal de compra-venta de coches coches.net con la idea de hallar precios medios de coches de segunda mano por provincias y por marcas.
  
-Por ahora, el script genera un índice de links de las últimas 91 páginas de la sección de coches de segunda mano y extrae información básica de las fichas de los anuncios (título del anuncio, marca del coche, precio, provincia, tipo de motor, año de fabricación, kilometraje y url del anuncio). Puesto que en los propios anuncios hay más información que en las fichas, el próximo paso de desarrollo podría ser ampliar el código para generar un índice de links de anuncios para enriquecer aún más la base de datos con campos como la potencia del motor o las emisiones CO2.+Por ahora, el script genera un índice de links de las últimas 91 páginas de la sección de coches de segunda mano y extrae información básica de las fichas de los anuncios (título del anuncio, marca del coche, precio, provincia, tipo de motor, año de fabricación, kilometraje y url del anuncio). Puesto que en los propios anuncios hay más información que en las fichas, el próximo paso de desarrollo podría ser ampliar el código para generar un índice de links de anuncios para enriquecer aún más la base de datos con campos como la potencia del motor o las emisiones CO2. También es necesario avanzar en 1) el formato del texto para que las tildes se escriban bien en el output, y 2) Mejorar el campo de Marca, que por ahora se consigue extrayendo la primera palabra del título y que en realidad se debería hacer extrayendo el valor del campo Marca en el anuncio de coches.net.
  
-A continuación comparto el código.+ 
 +===== Scrapeo ===== 
 + 
 +A continuación comparto el código de python para el scrapeo.
  
 <code>import csv <code>import csv
Línea 18: Línea 22:
     writer = csv.writer(outfile)     writer = csv.writer(outfile)
  
-    writer.writerow(['titulo', 'marca', 'precio', 'provincia', 'motor', 'año', 'km'])+    writer.writerow(['num','titulo', 'marca', 'precio', 'provincia', 'motor', 'año', 'km'])
     num = 0     num = 0
  
Línea 45: Línea 49:
             km = bloque.select('.mt-CardAd-attribute')[3].get_text().replace("km", "").replace(".", "")             km = bloque.select('.mt-CardAd-attribute')[3].get_text().replace("km", "").replace(".", "")
             link = 'https://www.coches.net/' + bloque.select('.mt-CardAd-link')[0].get('href')             link = 'https://www.coches.net/' + bloque.select('.mt-CardAd-link')[0].get('href')
-            print (num, marca, precio, prov, motor, año, km, link)<\code>+            print (num, marca, precio, prov, motor, año, km, link
 + 
 +            writer.writerow([num, titulo, marca, precio, prov, motor, año, km])</code> 
 + 
 + 
 + 
 +===== Análisis datos ===== 
 + 
 +A continuación pego el código en R para visualizar las medias por marca y provincia y los gráficos resultantes. 
 + 
 +<code> 
 +library(readr) 
 +coches <- read_csv("C:/scraping-workshop-master/scrapers/coches.csv",  
 +                   locale(encoding = "ASCII")) 
 + 
 +library(tidyverse) 
 + 
 + 
 +medias.prov <- coches %>% group_by(provincia) %>% summarise(N = n(), media = mean(precio)) 
 +medias.marcas <- coches %>% group_by(marca) %>% summarise(N = n(), media = mean(precio)) 
 + 
 +prov_plot <- ggplot(medias.prov, aes(x = reorder(provincia, media), y = media)) 
 +prov_plot + geom_col() + coord_flip() + labs(x = NULL, y = "Precio medio (€)", title = "Precios medios por provincia"
 + 
 + 
 +marcas_plot <- ggplot(medias.marcas, aes(x = reorder(marca, media), y = media)) 
 +marcas_plot + geom_col() + coord_flip() + labs(x = NULL,  y = "Precio medio (€)", title = "Precios medios por marcas"
 +</code> 
 + 
 + 
 +==== Gráficos ==== 
 + 
 + 
 +Aquí los gráficos resultantes: 
 + 
 + 
 +{{:taller-web-scraping-hirikilabs:rplot.png?400|}}
  
 +{{:taller-web-scraping-hirikilabs:rplot01.png?400|}}
  
  
 +Aquí un [[https://public.flourish.studio/visualisation/15538/|gráfico de dispersión interactivo]] hecho con Flourish Studio que corelaciona el año del coche con el precio.
taller-web-scraping-hirikilabs/coches.txt · Última modificación: 2018/02/15 17:58 por hmeleiros