Web scrapping fácil

lasizoillo lasizoillo en gmail.com
Dom Mayo 31 13:04:22 CEST 2009


Buenas:

Ayer, antes de irme a la feria del libro, decidí imprimir mi lista de
deseos (Wishlist) de Amazon.

El problema es que me salían 5 páginas llenas de colorines y cosas que
no eran la lista en si misma. Una primera aproximación con la función
load de jQuery (javascript) me dejaba solo la lista, pero si pudiera
ponerlo a 2 columnas ahorraría mucho papel.

Así que decidí usar la librería pyquery[1], que había leído que era
como jquery pero en python. Os adjunto el script tonto (de los de 15
minutos) que hice por si queréis echarle un vistazo y jugar con el web
scrapping. Yo estaba enamorado de BeautifulSoup hasta que probé
pyquery ayer.

http://pastie.org/495559

Un ejemplo de uso sería:
$ python print_amazon.py http://www.amazon.com/wishlist/3SW1PUBPKVRZV
> lista.html

Hay que reconocer que la librería mola un puñao. Puede cargar un xml,
html, ... desde una url, fichero, ... y en 4 lineas procesas lo que
haga falta. Posiblemente no es la opción más rápida de ejecución, pero
si una muy buena para tener las cosas hechas para ayer.

Otra cosa para lo que es interesante mirar la librería es para ver el
patrón de encadenado de objetos, que tanto se usa en orms para generar
consultas o frameworks como twisted para defiinir los pipelines de
ejecución (encadenando Deferred's).

[1] http://pypi.python.org/pypi/pyquery/0.3.1

Un saludo:

Javi
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es