En este repositorio se presenta el material realizado bajo el contexto de la Práctica 1 de la asignatura 'Tipología y Ciclo de Vida de los Datos' del Máster en Ciencia de Datos de la Universitat Oberta de Catalunya.
Durante la misma, se ha desarrollado una herramienta que permite obtener datos sobre anuncios de coches publicados en www.milanuncios.com utilizando técnicas de web scraping haciendo uso del lenguaje de programación Python, su libraría Beautiful Soup y Selenium.
Se puede leer el fichero PDF https://github.com/pablo-campillo/brand_car_scraper/blob/main/memoria/memoria.pdf
Ya desde la raíz del repositorio se puede ver código, pero la lógica principal se encuentra en https://github.com/pablo-campillo/brand_car_scraper/blob/main/brand_car_scraper/main.py
El conjunto de datos que genera la herramienta se sitúa en un fichero de salida .CSV con las siguientes características:
Se pueden encontrar los datos extraídos a día 6 de Noviembre de 2020 en https://zenodo.org/record/4252636#.X6W7THX0lhE.
Es necesario tener instalado el driver correspondiente a tu navegador para Selenium: https://www.selenium.dev/downloads/, preferiblemente para Google Chrome.
Desde el directorio raíz se ha de ejecutar el siguiente comando:
$ python setup.py install
Tal y como se presenta a continuación, se puede ejecutar el script de las siguientes maneras:
Usage: scrap [OPTIONS] OUTPUT_FILE
This tool scraps list of second hand car ads on https://www.milanuncios.com/coches-de-segunda-mano-en-<province>/?orden=relevance&fromSearch=<page_number> where <region> is the name of a region (province) in Spain (madrid, sevilla, murcia) and <page_number> is an integer greater or equal than 1. By searching for cars by regions we are able to save where they are being sold.
If no OPTIONS are provided all the pages will be parsed.
If no region is provided, madrid will be selected by default.
OUTPUT_FILE a path where the csv file will be stored.
Examples:
- For scraping from page 1 to the end, region madrid:
$ scrap out.csv
- For scraping from page 1 to 10, region madrid:
$ scrap --tp 10 out.csv
- For scraping from page 5 to 10, region madrid:
$ scrap -fp 5 -tp 10 out.csv
- For scraping from page 5, region madrid:
$ scrap -fp 5 out.csv
- For scraping from page 5 to 10, region murcia:
$ scrap -fp 5 -tp 10 --region murcia out.csv
AUTHORS:
- Pedro Uceda Martinez
- Pablo Campillo Sánchez
Options:
--fp INTEGER First page to be parsed. Default value is 1.
--tp INTEGER Last page to be parsed, i.e. until the last page.
--region TEXT Region to be parsed e.g. madrid.
--help Show this message and exit.
Así, la ejecución del siguiente comando:
$ scrap -fp 5 -tp 10 --region murcia out.csv
Dará lugar a un fichero out.csv con los datos de las páginas 5,6,7,8,9 y 10 del listado de coches de segunda mano a la venta en Murcia.
Crear un entorno virtual:
$ python3 -m venv <env_directory> python=3.8
Activar el entorno:
$ source <env_directory>/bin/activate
Instalar las librerías y sus dependencias como referencia al directorio, si fuera necesario:
$ python setup.py develop