[pyar] scrapyando páginas con javascript

Pablo Gabriel Celayes pablocelayes en gmail.com
Jue Mar 20 02:54:09 ART 2014


Gracias Eze por la recomendación. Scrapy es lo que venía usando, pasa que
el tema del headless browsing implica (hasta donde vi) interfacear con
webkit y no sé si se la banca en términos de eficiencia, pero supongo que
tendré que hacer algunas pruebas antes de ver.

A los demás: en caso de ir con la opción 2, ¿cómo encararían el tema de
encontrar las llamadas a javascript que corresponde a cada dato?

Pensando en un ejemplo concreto, dada la url:
http://www.booking.com/hotel/tr/ayasofyahotel.en-gb.html?selected_currency=EUR&checkin=2014-03-20&checkout=2014-03-22
¿cómo harían para scrapear el mejor precio de cada tipo de habitación en la
columna que dice "price for 2 nights"?

Vaso extra de fernet en el PyCamp a quien me ayude con ese puntapié inicial
:)

Gracias a todos!




2014-03-19 21:24 GMT-03:00 Ezequiel Brizuela [aka EHB or qlixed] <
qlixed en gmail.com>:

> 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
>>
>
> _______________________________________________
> 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
>



-- 
 *ıl**l**ıl**l**ı* ρąβℓ๏ *ıllı**lı*
We are the problem. And we should provide the *solution*.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140320/d8c843fb/attachment-0001.html>


More information about the pyar mailing list