Software para obtención de estadísticas fiables sobre mercado inmobiliario

mrcoellos

Madmaxista
Desde
6 Ene 2008
Mensajes
167
Reputación
69
Resumen

Este mensaje pretende animar a informáticos y no informáticos a colaborar en un repositorio de software para facilitar el análisis estadístico de la oferta inmobiliaria en España.


Motivación

  • Disponer de información fiable es clave si pretendemos usar esta información para sacar conclusiones y tomar decisiones. Más allá de ser burbujista o no, lo que todos queremos es tomar decisiones acertadas y para ello nada mejor que contar con toda la información posible.
  • Es de la opinión de muchas personas que hay poca información sobre el mercado de la vivienda en España, y que la poca que hay puede ser parcial y sesgada, según su procedencia.
  • Iniciativas como el hilo sobre el stock de viviendas de Idealista son muy interesantes, pero creo que sería mucho más fiable separar compra de alquiler,
    separar vivienda de locales, naves y garajes, separar vivienda usada de nuevas promociones y, sobre todo, separar venta de particular de ofertas de agencias (en especial porque resulta muy difícil o imposible detectar anuncios repetidos entre las ofertas de agencia). Esto está algo más detallado en otro post, http://www.burbuja.info/inmobiliaria/showpost.php?p=730000&postcount=852
  • Tengo la impresión que en este foro hay muchas personas con ganas de aportar ideas y que abundan los que tienen conocimientos informáticos :)

Objetivo

El objetivo de este mensaje es animar a los fororeros a participar en el desarrollo/recopilación/discusión de cualquier tipo de software que sea de utilidad para obtener información fiable sobre el estado y la evolución del mercado inmobiliario. Especialmente software de elaboración propia.

A modo de ejemplo, sería muy útil disponer de un programa que, cada vez que se ejecuta, accede a la base de datos de anuncios de algún portal inmobiliario y nos devuelve información estadística diversa.

Concreto más el ejemplo. Actualmente Idealista proporciona estadísticas como número total de anuncios publicados, precio/m2 medio en una determinada zona, junto a la información que dan en sus informes periódicos.

Ejemplos de estadísticas que también serían interensantes:

  • Número de particulares que venden su vivienda
  • Número de particulares que alquilan su vivienda
  • Número de ofertas en las que el precio ha bajado y cuantía media/máxima de las bajadas, distribución geográfica de las mismas
  • Tiempo medio que tarda un anuncio en darse de baja (como indicativo del tiempo de venta)
  • Número de particulares que anuncian más de un piso (a mi particularmente no me interesa el dato, pero seguro que a más de un forero sí)

Todos los estadísticos anteriores podrían calcularse con distintos grados de agregación (barrio, distrito, municipio, provincia, comunidad, estado).

A fecha de hoy (corregirme si me equivoco) ningún portal inmobiliario publica este tipo de información.


Oportunidades

Actualmente las herramientas informáticas existentes hacen que el desarrollo del tipo de aplicaciones a las que me refiero no supongan demasiado esfuerzo, el cual puede ser perfectamente asumible si el esfuerzo es compartido por muchas personas, en la línea del software libre (los que conocéis sourceforge.org e iniciativas similares sabéis a qué me refiero).

A modo de ejemplo, un script en Python para obtener una copia local de la base de datos de Idealista puede ocupar dos líneas de código (un problema más complicado es extraer los diferentes campos a partir de los ficheros HTML, pero igualmente abordable).

También existen otras herramientas (como el control WebBrowser de Ms) que permiten automatizar el acceso a información en la red. Seguro que muchos foreros conocen otras herramientas que puedan ser útiles para recopilar información.


Condiciones

No soy ningún moderador para establecer condición alguna sobre las contribuciones, pero la idea es que se aceptan ideas, sugerencias, críticas, enlaces, código fuente, y cualquier otra contribución que ayude a disponer de información más fiable, teniendo en cuenta dos aspectos:

  • Legalidad: tanto el software como el uso al que se destina debe ser estrictamente legal.

    En cuanto al software en sí, no veo la necesidad de utilizar software comercial existiendo herramientas similares de libre distribución.

    En cuanto al uso del software: no creo que sea ilegal o inmoral acceder a la BD (via herramientas de automatización, no mediate hacks!) de un portal inmobiliario y elaborar a partir de aquí estadísticas de uso personal. Lo que sí que probablemente sea ilegal es distribuir esa BD, lo cual por otro lado carece de interés. Por ello lo ideal es disponer de aplicaciones que cada cual pueda ejecutar a nivel particular para obtener la información que le interese, sin perjudicar en ningún momento los intereses del portal inmobiliario a partir del cual se haya obtenido la información.
  • Seguridad: la mejor forma de que toda la comunidad pueda beneficiarse de la colaboración de todos es que las aportaciones sean en forma de código fuente. De esta forma nadie tendrá la menor duda de que no le están pasando bichito, troyanos, spyware o similares.

Algunas consideraciones

Es muy posible que algunos informáticos del foro tengan reticencias a compartir código fuente con otras personas que, por qué no, podrían convertirse en compradores potenciales. Yo mismo hace algunos años hice varios programas de búsqueda automática de nuevos anuncios de ofertas
inmobiliarias; en esa época, en la que los pisos te los quitaban de las manos, hubiera sido muy reticente a la hora de compartir esa información tan preciosa con otros compradores "competidores". Las razones por las que actualmente no soy reticente a compartir son:

  • Los principales portales ya tienen sistemas de aviso (por email, SMS, feeds rss, etc) que hacen que sea dificil obtener una ventaja respecto a otros compradores por esta vía. Mis antiguas aplicaciones han quedado obsoletas.
  • Tengo la firme convicción que la mejora en la información que tienen los consumidores redunda en el beneficio de todos los consumidores (en todos los mercados, y especialmente en la vivienda). Un consumidor bien informado obliga a los proveedores a mejorar su oferta.
  • No creo que con la situación del mercado en la actualidad, con plazos de venta tan exagerados, y con tanta diferencia entre el precio ofertado y el precio final de venta, alguien os pueda quitar el piso de vuestros sueños por haber obtenido información "privilegiada"
  • Si la bajada de precios de la vivienda se sostiene durante varios años, de aquí a que nos decidamos a comprar un piso el software se habrá quedado obsoleto :)


Actuaciones

Mi idea es comenzar recogiendo impresiones sobre el tema, saber si existe algún hilo en esta web o en otra dedicado a temas similares. Si hay suficiente gente interesada, y los moderadores lo estiman conveniente, quizás podría llegar a ser un foro independiente (dentro de la web de burbuja.info).

Espero vuestras ideas y sugerencias!
 

nihilist

Gott ist tot
Desde
18 Abr 2007
Mensajes
571
Reputación
349
El problema no está en el software, sinó en los datos. Una vez con los datos, el análisis de los mismos es relativamente sencillo.

Cosas cómo las que planteas de extraer los datos de idealista... así a la brava... no creo que pasara mucho tiempo hasta que lo detectaran y banearan las IPs, y entonces qué? Todo el planteamiento se cae en cuanto a idealista le apetezca... ahí tienes el punto débil del proyecto.
 

Imparable

Madmaxista
Desde
17 Ene 2008
Mensajes
1.921
Reputación
1.380
Lugar
Madrid
Me apunto al proyecto. Cuenta conmigo. Aquí aporto algunas ideas:

A modo de ejemplo, sería muy útil disponer de un programa que, cada vez que se ejecuta, accede a la base de datos de anuncios de algún portal inmobiliario y nos devuelve información estadística diversa.
Existe un software: www.openkapow.com que es muy útil para hacer mashups de la información de las webs. Es muy versátil y potente y permite hacer casi cualquier cosa en unos pocos pasos.

Estuve practicando con ese software y me hice un robot que te devuelve un rss de las noticias completas, no sólo del titular como hace el rss oficial del 20 minutos. Lo conté en mi blog:

http://becasonlentejas.100webspace.net/archives/41-Regalos-de-Navidad..html

Hace mucho que no practico eso sí.


En cuanto al tema de eliminar los duplicados, una manera sería calcular mediante una función hash a partir de la dirección de la vivienda una cadena de caracteres que sería única para esa vivienda.

En cuanto a la licencia de este software, mi única condición para participar es que sea software libre. Cualquier otra cosa, para mí no valdría la pena. Y esto no quiere decir que en un momento dado no se pudiera hacer dinero con ese software.

Espero que la idea salga adelante!
 

mrcoellos

Madmaxista
Desde
6 Ene 2008
Mensajes
167
Reputación
69
Cosas cómo las que planteas de extraer los datos de idealista... así a la brava... no creo que pasara mucho tiempo hasta que lo detectaran y banearan las IPs, y entonces qué? Todo el planteamiento se cae en cuanto a idealista le apetezca... ahí tienes el punto débil del proyecto.
Es cierto que Idealista puede dificultar en cualquier momento el acceso exhaustivo y automatizado a su base de datos, pero:

  • todavía no lo ha hecho :)
  • no veo fácil que la cosa venga por banear IPs; muchos usuarios tienen IPs dinámicas, que pueden renovar fácilmente.
  • al igual que otros portales inmobiliarios, idealista sigue la política de tener una página independiente para cada anuncio, accesible vía el código de anuncio; ello facilita ofrecer servicios como "envia el anuncio a un amigo", avisos vía SMS, etc, y nos posibilita hacer consultas automatizadas. Dudo que cambien de política sólo porque haya gente que use herramientas similares a los "gestores de descarga", si no les perjudica el negocio.
De todas formas mi propuesta iba más allá de un portal inmobiliario concreto...
 

mrcoellos

Madmaxista
Desde
6 Ene 2008
Mensajes
167
Reputación
69
Existe un software: www.openkapow.com que es muy útil para hacer mashups de la información de las webs. Es muy versátil y potente y permite hacer casi cualquier cosa en unos pocos pasos.

Estuve practicando con ese software y me hice un robot que te devuelve un rss de las noticias completas, no sólo del titular como hace el rss oficial del 20 minutos. Lo conté en mi blog:

http://becasonlentejas.100webspace.net/archives/41-Regalos-de-Navidad..html
No conocía el openkapow, tiene muy buena pinta. Gracias!

En cuanto al tema de eliminar los duplicados, una manera sería calcular mediante una función hash a partir de la dirección de la vivienda una cadena de caracteres que sería única para esa vivienda.
De acuerdo, aunque yo me refería a eliminar los duplicados de agencias, que no incluyen la dirección exacta, sólo el barrio.

En cuanto a la licencia de este software, mi única condición para participar es que sea software libre. Cualquier otra cosa, para mí no valdría la pena. Y esto no quiere decir que en un momento dado no se pudiera hacer dinero con ese software.
Mis contribuciones serán en la línea de programas muy cortos (pero espero que muy útiles), que por supuesto serán soft libre. Lo bueno es que en Perl, Python, etc se pueden hacer cosas muy interesantes con muy poco código.
De todas formas si la idea sale adelante me temo que puede haber contribuciones muy variopintas.
 

nihilist

Gott ist tot
Desde
18 Abr 2007
Mensajes
571
Reputación
349
Continuaré en la línea de buscar puntos débiles al proyecto. Espero que no te moleste.

  • todavía no lo ha hecho :)
  • no veo fácil que la cosa venga por banear IPs; muchos usuarios tienen IPs dinámicas, que pueden renovar fácilmente.

    ...
De todas formas mi propuesta iba más allá de un portal inmobiliario concreto...
En el primer punto tienes toda la razón. Pero que no lo haya hecho no quiere decir que no lo hará.

Respecto al segundo punto, eso cambiará con el IPv6, pero aún queda para eso. Si la cosa les molesta mucho limitarán rangos, cómo hacen los servidores de correo con el SPAM. Si la cosa se hace de manera distribuida entre muchas IPs, entonces es difícil de detectar y de evitar... en ese caso, y siempre que no se hagan tantas peticiones que lo confundan con un ataque DDoS, entonces pasará inadvertido (que es lo mejor).

Si se intenta extraer info de varios portales, entonces estará el problema de los duplicados. Lo del hash sobre la dirección podría funcionar siempre que la gente escriba la dirección de la misma manera... cómo eso no será siempre así (no sé el porcentaje de errores), eso introducirá desviaciones en los cálculos que deberían tenerse en cuenta.

Lo más complicado es hacer los 'wrappers' que saquen la info. de los HTMLs... aunque, os habeis planteado el hablar directamente con los portales inmobiliarios? Igual alguno está dispuesto a proporcionar algún tipo de "sindicación" y eso ahorraría mucho trabajo.
 

mrcoellos

Madmaxista
Desde
6 Ene 2008
Mensajes
167
Reputación
69
Continuaré en la línea de buscar puntos débiles al proyecto. Espero que no te moleste.
En absoluto. El primero que no quiere auto-engañarse soy yo!

Si la cosa les molesta mucho limitarán rangos, cómo hacen los servidores de correo con el SPAM. Si la cosa se hace de manera distribuida entre muchas IPs, entonces es difícil de detectar y de evitar... en ese caso, y siempre que no se hagan tantas peticiones que lo confundan con un ataque DDoS, entonces pasará inadvertido (que es lo mejor).
Veo que estás puesto en el tema. El soft puede tener en cuenta lo que comentas y hacer peticiones convenientemente racionalizadas.

Si se intenta extraer info de varios portales, entonces estará el problema de los duplicados.
Eso es mucho más ambicioso de lo que yo proponía. A mi personalmente con tener los de un sólo portal sin repetidos (el del particular + los n de la agencia) ya sería muy útil.

Lo más complicado es hacer los 'wrappers' que saquen la info. de los HTMLs... aunque, os habeis planteado el hablar directamente con los portales inmobiliarios?
Pues... es buena idea. Algún voluntario? Alguien que tenga un buen contacto? :)

De todas formas, hay estadísticas y formas de acceder a la información que no creo que estén dispuestos a proporcionar. Por ejemplo, de cada anuncio idealista informa sobre cuándo fue la última actualización, cuántas veces se ha visto, etc. pero no la antigüedad del anuncio. El interfaz web tampoco permite ordenar anuncios por fecha de publicación (aunque sí puede hacerse vía RSS), seguramente para proteger al anunciante "con solera".
 

Filicuchino

Madmaxista
Desde
1 Feb 2007
Mensajes
729
Reputación
90
Hace tiempo uno del foro (Xin) creó un programa en el python para extraer todas las viviendas del idealista. Yo lo usé el año pasado para bajar semanalmente todo el listado de viviendas en venta. Funcionaba bien. Después de muchos meses ya no lo volví a utilizar porque me modificaron el formato de las hojas, y ya no me bajaba nada. Nunca me banearon la IP durante el proceso.
Daba unas estadísticas de intenciones de venta muy fiables, puesto que podías eliminar datos incorrectos, dar precios medios por tramos de m2, etc..

Poderse se puede hacer.
 

ronald29780

Mercutio
Desde
11 Sep 2007
Mensajes
33.627
Reputación
15.053
Aunque no tengo la mas minima idea de los detalles tecnicos que hablais, me parece una buena iniciativa y os deseo:

Animo.
 

ilusionista_borrado

Madmaxista
Desde
12 Feb 2008
Mensajes
558
Reputación
404
Yo hice un robot para unas 20 webs., el problema es que el parseo esta muy ligado al diseño de la pagina, aunque si se usa DOM o expresiones regualares se puede suavizar ese problema.

¿ Por cierto me puedes explicar esto: ?

"A modo de ejemplo, un script en Python para obtener una copia local de la base de datos de Idealista puede ocupar dos líneas de código"
 

mrcoellos

Madmaxista
Desde
6 Ene 2008
Mensajes
167
Reputación
69
¿ Por cierto me puedes explicar esto: ?

"A modo de ejemplo, un script en Python para obtener una copia local de la base de datos de Idealista puede ocupar dos líneas de código"
Bueno, me refería sólo a copiar los HTML de todos los anuncios para su postproceso local. Aprovechando que tienen una URL distinta para cada anuncio, sería algo así:

for i in range(1223000, 1387338):
urlretrieve("http://www.idealista.com/pagina/inmueble?codigoinmueble=VW000000"+str(i), "anuncio"+str(i)+".html")​

para copiar los anuncios con códigos desde VW1223000 hasta VW1387338, por poner un ejemplo.

Creo que todos los anuncios de particulares tienen sufijo VW ó VC, mientras que los de agencia tienen usan el prefijo VP. Al menos los anuncios de Barcelona y Madrid tienen ese aspecto.

Del robot que hiciste... si crees que nos puede servir de punto de partida y quieres compartirlo, será bienvenido.
 

ilusionista_borrado

Madmaxista
Desde
12 Feb 2008
Mensajes
558
Reputación
404
La verdad es que mi robot tecnologicamente era un kk, ya que fue el primero que hice utilizando tecnicas de web scrapping. Estaba muy ligado al HTML, ya que simplemente buscaba literales en el churro de HTML que obtenia, asi que no creo que sea un buen punto de partida. Otro fallo es que en vez de bajarse las pagina de HTML a local como tu explicas, el robot navegaba por las paginas desde la raiz, con lo que aumenta la dependencia con el diseño de las paginas.

Por otra parte ahora no tendria tiempo para dedicarme a este proyecto.

No obstante, de mi experiencia con C# y si ese fuese el lenguaje escogido, aconsejaria utilizar HTMLAgilityPack que proporciona el acceso al DOM de la pagina aunque no este bien formado en vez de los controles de Microsoft que son MUY lentos. A partir de ahi creo que lo mejor seria hacer busquedas del arbol con XPATH para acceder a los elementos.

Siento no poder ayudar mas y suerte con el proyecto.
 

CaCO3

Madmaxista
Desde
17 Oct 2007
Mensajes
20.942
Reputación
49.760
A modo de ejemplo, sería muy útil disponer de un programa que, cada vez que se ejecuta, accede a la base de datos de anuncios de algún portal inmobiliario y nos devuelve información estadística diversa.
Cuando en idealista quitaron el precio medio por m2 y kalandrakas se quejó estuve haciendo un script en python para calcularlo. Como antes de que acabase volvieron a colgar el dato, lo dejé (casi acabado).

De todos modos, yo creo que el programa, tal y como lo planteas está cojo. Lo interesante no es sólo mirar qué nos dice la web en un instante de tiempo determinado, sino compararlo con el pasado. Y me explico. Supongamos que ejecutamos el programa el día 1 de cada mes. Si tenemos almacenada en una base de datos la información de los meses anteriores, se pueden llegar a saber: casas que han dejado de anunciarse, casas que han bajado o subido el precio y en qué porcentaje, tiempo medio de permanencia de los anuncios, etc...

A modo de ejemplo, un script en Python para obtener una copia local de la base de datos de Idealista puede ocupar dos líneas de código (un problema más complicado es extraer los diferentes campos a partir de los ficheros HTML, pero igualmente abordable).
Pero no se puede acceder a la base de datos de idealista, ¿no? Sólo se pueden hacer consultas y extraer la información de los html.

Yo jamás he participado en nada de este tipo, pero si hay posibilidades de escribir código en python, intentaré participar.

Por cierto, el robot que dejé a medio hacer porque ya no servía para nada lo escribí en python usando el módulo <tt>BeautifulSoup</tt>.
 
Última edición:

Imparable

Madmaxista
Desde
17 Ene 2008
Mensajes
1.921
Reputación
1.380
Lugar
Madrid
Hola,

He estado practicando con el openkapow y me he hecho un robot en un rato que devuelve un xml con todas las viviendas a la venta en madrid en idealista.

Los datos que da por vivienda son:

- Zona
- localizacion (calle)
- Precio
- m2
- dormitorios

Lo malo es que no puedo publicarlo para que les podais echar un ojo al xml.
Si alguien me quiere echar una mano para publicarlo, que me mande un mp y le explico cómo prodría hacerlo.

No es difícil pero tampoco se hace en 2 minutos.
 

pacomer

Será en Octubre
Desde
15 Ene 2007
Mensajes
28.044
Reputación
85.438
No sería más fácil hacer una aplicación completa en flash para leer los XML (actionscript2) conforme vayan actualizandose?

La ventaja es que el interface grafico y el iterador de nodos van en el mismo codígo, y se puede colocar en un host baratongo sin necesidad de commongi ni bases de datos.

Yo tengo uno hecho para aggregator, y con bucles foreach y objetos permite iteracciones por los nodos de manera muy flexible (independientemente del orden de estos, diferentes formatos etc)


saludos

Por cierto el truco para puentear la sandbox del actionscript de flash es importando los ficheros a traves de un script en PHP.
 
Última edición: