Herramientas de usuario

Herramientas del sitio


taller-web-scraping-hirikilabs:coches

¡Esta es una revisión vieja del documento!


Breve estudio sobre coches de segunda mano

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.

A continuación comparto el código.

import csv
from urllib import request as urllib2
from bs4 import BeautifulSoup
import time

outputpath = 'coches.csv'

with open(outputpath, 'w') as outfile:

    writer = csv.writer(outfile)

    writer.writerow(['titulo', 'marca', 'precio', 'provincia', 'motor', 'año', 'km'])
    num = 0

    for counter in range(1,80):
 
        url = 'https://www.coches.net/segunda-mano/?pg=' + str(counter) + '&st=1'

    # Get URL
        response = urllib2.Request(url)
        pagedata = urllib2.urlopen(response)
        html = pagedata.read()

    # Get links
        soup = BeautifulSoup(html, "html.parser")
        bloques = soup.select('.mt-Card-body')
    

        for bloque in bloques:
            num = num + 1
            titulo = bloque.select('.mt-CardAd-title .mt-CardAd-titleHiglight')[0].get_text()
            marca = titulo.split(" ")[0]
            precio = bloque.select('.mt-CardAd-price .mt-CardAd-titleHiglight')[0].get_text().replace(".", "").replace("€", "")
            prov = bloque.select('.mt-CardAd-attribute')[0].get_text().replace("km", "").replace(".", "")
            motor = bloque.select('.mt-CardAd-attribute')[1].get_text().replace("km", "").replace(".", "")
            año = bloque.select('.mt-CardAd-attribute')[2].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')
            print (num, marca, precio, prov, motor, año, km, link)
            
            
taller-web-scraping-hirikilabs/coches.1518026749.txt.gz · Última modificación: 2018/02/07 19:05 por hmeleiros