[pyar] scrapyando páginas con javascript

Ezequiel Brizuela [aka EHB or qlixed] qlixed en gmail.com
Mie Mar 19 21:24:34 ART 2014


Fijate scrapy. Es un scrapper q soporta headless browsing con y sin
javascript. Usa un esquema de proyecto tipo django. Y viene con una shell
para ir aprendiendo como scrappear las pages.
Soporta auths, caching, republish dr la info. Esta mooooooyyyy completito.
La curva de aprendizaje me parece un poquito heavy de entrada... pero vale
la pena.
El mar 19, 2014 6:19 PM, "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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140319/8a0c29e2/attachment-0001.html>


More information about the pyar mailing list