taller-web-scraping-hirikilabs:coches
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
taller-web-scraping-hirikilabs:coches [2018/02/07 17:30] – creado hmeleiros | taller-web-scraping-hirikilabs:coches [2018/02/15 17:58] (actual) – [Scrapeo coches.net] hmeleiros | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | Coches | + | ====== Scrapeo coches.net ====== |
+ | --- // | ||
+ | |||
+ | 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 | ||
+ | |||
+ | 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, | ||
+ | |||
+ | |||
+ | Actualización (15/ | ||
+ | |||
+ | He " | ||
+ | |||
+ | |||
+ | |||
+ | ===== Scrapeo ===== | ||
+ | |||
+ | A continuación comparto el código de python para el scrapeo. | ||
+ | |||
+ | < | ||
+ | from urllib import request as urllib2 | ||
+ | from bs4 import BeautifulSoup | ||
+ | import time | ||
+ | |||
+ | outputpath = ' | ||
+ | |||
+ | with open(outputpath, | ||
+ | |||
+ | writer = csv.writer(outfile) | ||
+ | |||
+ | writer.writerow([' | ||
+ | num = 0 | ||
+ | |||
+ | for counter in range(1, | ||
+ | |||
+ | url = ' | ||
+ | |||
+ | # Get URL | ||
+ | response = urllib2.Request(url) | ||
+ | pagedata = urllib2.urlopen(response) | ||
+ | html = pagedata.read() | ||
+ | |||
+ | # Get links | ||
+ | soup = BeautifulSoup(html, | ||
+ | bloques = soup.select(' | ||
+ | |||
+ | |||
+ | for bloque in bloques: | ||
+ | num = num + 1 | ||
+ | titulo = bloque.select(' | ||
+ | marca = titulo.split(" | ||
+ | precio = bloque.select(' | ||
+ | prov = bloque.select(' | ||
+ | motor = bloque.select(' | ||
+ | año = bloque.select(' | ||
+ | km = bloque.select(' | ||
+ | link = ' | ||
+ | print (num, marca, precio, prov, motor, año, km, link) | ||
+ | |||
+ | writer.writerow([num, | ||
+ | |||
+ | |||
+ | |||
+ | ===== 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. | ||
+ | |||
+ | < | ||
+ | library(readr) | ||
+ | coches <- read_csv(" | ||
+ | | ||
+ | |||
+ | 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, | ||
+ | prov_plot + geom_col() + coord_flip() + labs(x = NULL, y = " | ||
+ | |||
+ | |||
+ | marcas_plot <- ggplot(medias.marcas, | ||
+ | marcas_plot + geom_col() + coord_flip() + labs(x = NULL, y = " | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Gráficos ==== | ||
+ | |||
+ | |||
+ | Aquí los gráficos resultantes: | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | Aquí un [[https:// |
taller-web-scraping-hirikilabs/coches.1518021020.txt.gz · Última modificación: 2018/02/07 17:30 por hmeleiros