Comunicando Node.js y Python (I – la manera sencilla)

Estos últimos días estoy quemando mis horas de vacaciones en un pequeño proyecto que me he planteado que tiene por objetivo, más que nada, aprender. Cuando lo termine seguramente lo publique en GitHub bien documentado, de momento baste saber que me está sirviendo para practicar Node.js, MongoDB y Python.

Captura de pantalla 2014-08-02 13.45.32

El problema es que toda la información que maneja Node.js ha de obtenerse mediante web scraping, y realizar este en el servidor (Node) no me parecía correcto (y ni tan siquiera sé si se podría hacer de manera sencilla), máxime cuando con Python y BeautifulSoup, si el HTML tiene una estructura más o menos coherente, el scrap es fácil.

Así que una vez montado el scraper en Python, la duda quedaba en cuándo dispararlo. Se me planteaban dos opciones: hacer un scrap a lo bestia de manera periódica de toda la información que maneja Node y guardarla en MongoDB, o correr el scraper bajo demanda del usuario, con la BD en el medio, de manera que la primera vez que se pidiese algo que no hubiese sido aún scrapeado tardase más por tener que correr el script Python para obtener la información, pero que en veces sucesivas este contenido ya estuviese cacheado en la base de datos.

Posiblemente el peor diagrama de secuencia de la historia

Posiblemente el peor diagrama de secuencia de la historia

Sigue leyendo