[pyar] scrapyando páginas con javascript

Jairo Trad frodobolsonxx en gmail.com
Mie Mar 19 18:23:02 ART 2014


Vas a terminar haciendo el 2 en el 90% de los casos no tiene sentido
levantar tanto overhead... empeza a hacerte amigo de firebug... o de ultima
usa las herramientas que vienen incluidas en crome que son bastante buenas
para eso.


El 19 de marzo de 2014, 18:18, Pablo Gabriel Celayes <pablocelayes en gmail.com
> escribió:

> Hola gentes, cómo andan?
>
> Les cuento un problema que estoy teniendo, a ver si alguno con experiencia
> en el asunto me puede iluminar un poco:
>
> Tengo que extraer información sobre precios de habitaciones y
> disponibilidades, de urls como esta:
>
>
> http://www.booking.com/hotel/tr/ayasofyahotel.en-gb.html?selected_currency=EUR&checkin=2014-03-20&checkout=2014-03-22
>
> En una primera etapa había tenido que traerme la lista de hoteles, y hasta
> ahí con scrapy solo me las arreglé bastante bien. El problema viene porque
> la data que estoy tratando de extraer ahora no está en el html estático,
> sino que se genera dinámicamente con javascript, y scrapy no me la trae.
>
> Estuve googleando bastante sobre el tema, y veo que hay varias formas de
> resolver esto, una de las cuales ya implementé a modo de prototipo (1.),
> pero que planeo tirar a futuro por cuestiones de eficiencia. A saber:
>
> 1. Interfacear con algún browser vía Selenium o similar, ponerle un
> timeout a cada página para esperar a que cargue y scrapear de ahí. Es lo
> que tengo hecho hasta ahora, pero según mis cuentas, tardaría 40hs en traer
> la data que necesito para una ciudad.
>
> 2. Hacer un poco de ingeniería inversa sobre las llamadas AJAX, para ver
> dónde se traen los json con la data que necesito, y hacer que scrapy haga
> esas requests directamente. Suena a la más eficiente, pero pinta bastante
> engorroso, y no he logrado dar con una herramienta que me simplifique el
> tema de trackear que partes de la página se cargan con que requests (capaz
> q el mismo firebug me lo permito, pero no termino de avivarme de cómo).
>
> 3. instanciar algún *headless-browser *como el webkit de PyQt4 y hacer lo
> mismo que con Selenium. Por lo que leí sería un toque más rápido.
>
> Tanto 1. como 3. mejorarán bastante haciendo multithreading me imagino,
> pero quiero saber si vale la pena antes de ponerme a hacerlo.
>
> ¿Qué creen que me conviene hacer?
>
> Desde ya mil gracias, retribuiré las respuestas en mates/ferneces en el
> PyCamp ;)
>
> --
>  *ıl**l**ıl**l**ı* ρąβℓ๏ *ıllı**lı*
> We are the problem. And we should provide the *solution*.
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Jairo Trad
Ing. en Computación - FCEFyN - UNC
ar.linkedin.com/in/ingjairotrad
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140319/859f2678/attachment-0001.html>


More information about the pyar mailing list