En esta práctica se ha llevado a cabo un caso práctico de Web Scraping, orientado a identificar y extraer datos relevantes del dominio Expatistan. Esta webpage nos muestra los costes de vida por países y ciudades en un formato de Ranking, es decir, del que mayor costes prensenta hasta el país o ciudad donde vivir es más barato.
Partiendo de la premisa del webpage y que cada país/ciudad tiene sus gastos divididos en categorías y elementos, esta página nos abre un mundo entero para realizar análisis estadístico de los costes de vida y concluir
ÍNDICE
Par este proyecto nos centraremos en extraer los datos que hacer referencia a cada ciudad y país explicados por la página web. De ahí que en el repositorio hayan dos datasets extraídos: cost_of_living_cities.csv
y cost_of_living_countries.csv
. Como dicen sus nombres, cada uno corresponde al tipo de Web Scraping realizado en la página web y contendrán los siguinetes valores.
cost_of_living_cities.csv | cost_of_living_countries.csv | Explicación |
---|---|---|
Ranking position | Ranking position | Posición numérica del país o ciudad en el Raking de la web |
Country | Country | Nombre del país de originen de la ciudad o país al que se le hace el Web Scraping respectivamente |
City | (No presenta esta columna) | Nombre de la ciudad a la que se le está aplicando el Web Scraping |
State | (No presenta esta columna) | Nombre del estado, si lo presenta, de la ciudad a la que se le está aplicando el Web Scraping |
Category | Category | Nombre de la clasificación genérica que se le ha otorgado a un conjunto de items |
Items | Items | Objetos o servicioscuyos precios nos sirven para estimar el coste de vida por país o ciudad |
Original Currency | Original Currency | Nombre de la moneda usada por el país o ciudad a los que se ha aplicado el Web Scraping |
Original Currency Value | Original Currency Value | Valor de la moneda usada por el país o ciudad a los que se ha aplicado el Web Scraping |
Exchanged Currency | Exchanged Currency | Nombre de la moneda usada para el cambio de divisa |
Exchanged Currency Value | Exchanged Currency Value | Valor de la moneda usada para el cambio de divisa |
Estos CSV se consiguen a partir del código explicado en el Jupyter notebook Scraping-notebook.ipynb
, que contiene una pequeña introducción a la página web y el Web Scraping de Ciudades (clase ExpatistanCityScraper()
) y de Países (clase ExpatistanCountryScraper()
).
Por otro lado, tenemos un archivo utils.py
que contiene todas las funciones comunes a ambos Web Scrapings. Este fichero nos ahorrará tener código duplicado o con minimos cambios en ambas clases ExpatistanCountryScraper()
y ExpatistanCityScraper()
, haciendo que el notebook esté mejor optimizado y limpio.
- Tener instalado Jupyter Notebook en local o una cuenta de alguna plataforma de servicio Cloud con python notebooks habilitados (Google Colab, Kaggle, etc.)
- Tener python instalado en la máquina si se quiere usar el notebook en local.
- Tener las siguientes librerías instaladas (ver siguiente apartado).
- Descargar la version gratis del IDE Jupyter Notebook
- Descarga el repositorio en tu máquina o clonalo
git clone https://github.com/Tipologia-y-Ciclo-de-Vida-de-los-Datos/Practica1-Web_Scraping
- Instala
python
, si no lo tienes en tu máquina, desde Microsoft Store y comprueba su instalación en PowerShellPython --version
- Abre el IDE Jupyter Notebook y navega entre los directorios hasta donde tengas guardado el notebook
- Abre el notebook
Scraping-notebook
- Recomendamos ejecutar el apartado
1.1 Installations
auque se crea que la máquina tiene todas las librerías
!pip install requests
!pip install builtwith
!pip install beautifulsoup4
!pip install python-whois
- Importar las librerías y el archivo
utils.py
- Notebook preparado para realizar el scraping.
Distributed under the CC BY-NC-SA 4.0 License. Ver LICENSE.txt
para más información.
- Cost of Living by Country: https://doi.org/10.5281/zenodo.7833244
- Cost of Living by City: https://doi.org/10.5281/zenodo.7833285
Este proyecto ha sido llevado a cabo por:
- José Luis Santos Durango - [email protected]
- María Isabel González Sánchez - [email protected]
Contáctanos: Miembros del equipo