Una Forma Genial para Buscar y Analizar Arriendos de Departamentos en la Web.

Cómo automatizar tus búsquedas para encontrar la mejor oferta de arriendos utilizando Python y Power Bi.

Cristóbal V
Ciencia y Datos
6 min readAug 17, 2020

--

Photo by Erik Mclean on Unsplash

El internet ha abierto las puertas y a dado acceso a que todo el mundo pueda vender, comprar y arrendar un inmueble con un simple click. Si bien eso es una gran oportunidad tanto para compradores como vendedores al hacer mejores negocios gracias a la enorme difusión que pueden llegar a tener sus productos en el internet.

Sin embargo muchas veces entre tanta oferta disponible en el mercado, se hace un poco tedioso encontrar la mejor opción de lo que estamos buscando. En mi caso, estaba buscando departamentos en Santiago de Chile para arrendar, pero me di cuenta que hay muchas ofertas y eso me hace no poder decidir cual de todas escoger!!. Asi que se me ocurrió una forma de poder acceder a todas estas ofertas de arriendos, compararlas y visualizarlas de una manera más sencilla, para que me pudiera ayudar a encontrar la que más se adapta a mis necesidades, así que sin más rodeos vamos a la accion.

Mi ídea fue realizar un Web Scraping, que corresponde a un proceso para extraer información de sitios web de manera automatica. El sitio Web que escogi fue portalinmobiliario, el cual posee una amplia variedad de ofertas en arriendo de departamentos en muchas regiones de Chile. Finalmente con la información obtenida creé una base de datos para visualizar la información en los hiper mega geniales reportes de Power Bi.

Los archivos y scripts completo se pueden ver en mi Github haciendo click aquí.

Herramientas Necesarias:

  • Conocimiento de programación con Python.
  • Power Bi Desktop.

1. Obteniendo el Data de Arriendos:

Como mencioné anteriormente, El proceso de Web Scraping consiste en obtener información de una pagina web de manera automatizada, esta información se puede guardar en la manera que se desee, en mi caso quiero obtener la información de los arriendos de departamentos ofertados, pero siendo más especifico me interesan las siguientes caracteristicas:

  • Precio de Renta.
  • Metros Cuadrados del Departamento.
  • Cantidad de Habitaciones.
  • Cantidad de Baños.
  • Dirección del Departamento.
  • URL de la oferta de arriendo en la pagina de Portal Inmobiliario.

Estas caracteristicas corresponderán a las columnas de mi Data Frame. Así sin más utilizando la libreria Requests, y Beautiful Soup de Python realicé el Web Scraping a la Pagina Web. Por motivos de visualización no pondré el Script en este articulo pero se puede ver cliqueando aquí.

De manera general el trabajo que hace el Script es extraer el codigo html de la pagina web y la almacena en una variable, con esta variable podemos ir navegando dentro del codigo html y encontrar los tags donde se almacenan los items que contienen la información objetivo. Esta información se guarda como texto en las listas de Python declaradas como nuevas variables y realizando una serie de bucles, se extrae la información de cada item, por cada pagina.

Para automatizar todo el proceso anterior definí una función llamada scraping_portal_inmobiliario(region,n_pages) a la cual se le debe pasar como argumento la ciudad o región que se desea consultar y el numero de paginas de resultados. Esta función devuelve 6 listas con la información de las caracteristicas explicadas arriba (precio,metros cuadrados, baños, habitaciones, dirección y URL)

Por ejemplo, en mi caso quiero consultar sobre ofertas de arriendos en Santiago, pero solamente hasta la pagina 10 de los resultados que entrega portal inmobiliario, esto se vería de la siguiente manera:

Output Función scraping_inmobiliario (Photo by Author)

Podemos ver que a medida que se va realizando el proceso, la función entrega la cantidad de información extraida por cada una de las paginas de resultados. En este caso se obtuvo un total de 483 ofertas de arriendos de departamentos en Santiago.

2. Limpiando el Data de Arriendos:

Muchas veces suele suceder que las personas no escriben la información completa sobre lo que están ofreciendo en la web, o tal vez debido a errores de tipeos, la información no se llena adecuadamente en cada categoria. Debido a esto es necesario realizar una limpieza a los datos, eliminando las variables que no aporten información, y modificando algunos tipos de datos para que puedan ser procesados posteriormente por Power Bi.

A modo general, para la limpieza de estos datos, elimine el texto adicional de las variables numericas como Cantidad de Baños, Dormitorios, Precios y Metros Cuadrados. Tambien cambie el tipo de dato a numerico (Interger) ya que toda la información extraida de internet se almacena en texto (String).

Finalmente debido a los errores de tipeo de algunos usuarios al escribir el precio de arriendo de los departamentos, consideré los valores que estuvieran en un rango de $100.000 a $10.000.000 pesos Chilenos.

El Data Frame que obtuve es el siguiente:

Data Frame de Arriendo de Departamentos en Santiago de Chile. (Phot by Author)

3. Direcciones y Coordenadas Geograficas de Arriendos:

Uno de los motivos que más me interesaba al realizar este proyecto, fue el poder ver de manera global en un mapa de Santiago donde se encuentra cada uno de departamentos en arriendo que se ofrecen en la pagina web.

Para poder realizar esto, tuve que obtener las coordenadas geograficas de las direcciones de mi Data Frame, gracias a los dioses geeks de python, encontré una libreria que se llama geopy, a la cual se le pasa una dirección y devuelve las coordenadas. Si quieres ver más información de esta librería click aquí.

Lamentablemente muchas de las direcciones no estaban bien escritas, por lo que geopy no fue capaz de encontrar todas las coordenadas geograficas, así que filtré la información de arriendos que tuvieran direcciones validas y el resultado final fue el siguiente:

Data Frame de arriendos con Coordenadas Geograficas (Photo by Author)

El data completo fue guardado en un archivo csv que puedes ver aquí.

4. Visualización de Información con Power BI:

Finalmente llegamos al final!. Luego de la extracción, limpieza y modificación de los datos de arriendo, al fin estaba estaba listo para hacer mi reporte en Power BI con la oferta de arriendos de Departamentos en Santiago. Con un poco de creatividad, agregué un mapa, nuevas categorias según el tamaño del departamento, el Precio de arriendo promedio de un departamento en Santiago, entre muchos otros y obtuve el siguiente resultado:

Hacer click en link recuadro de abajo (Power Bi Report) para ver el reporte.

Reporte Power Bi de Arriendos de Departamentos en Santiago, Chile. (Photo by Author)

5. Conclusión:

Las herramientas que nos brinda la tecnologia hoy en dia nos ayudan a facilitar tareas que hace algunos años atrás podian llevar días y semanas realizar. El mundo avanza cada vez más rapido y el tiempo se vuelve valioso para todos nosotros, es por eso que debemos aprovechar y crear con la tecnologia que se nos brinda, los mecanismos necesarios para utilizar ese tiempo de forma productiva.

Otros de mis Articulos (Muy entretenidos):

Referencias:

--

--