miércoles, 12 de marzo de 2014

Web Scraping con curl, lynx, wget

Para quien no sepa que es web scraping : http://es.wikipedia.org/wiki/Web_scraping

Para esto hay varias formas y lenguajes de como hacerlo,  en este post les comentaré sobre 3 soluciones para hacerlo en cualquier Linux desde terminal:

LYNX
Es un navegador web para la terminal sin soporte para javascript (AJAX)

lynx -dump "http://www.ejemplo.com/"

Si lo que quieres es obtener el codigo fuente completo de la pagina web, puedes usar la opción -source :

lynx -source "http://www.ejemplo.com/"

También puedes usar pipe "|" para usar programas como grep,sed,awk para obtener solo cierto contenido de la consulta web :

lynx -source "http://www.ejemplo.com/" | grep -o 'tu expresión regular' | sed 's/etiquetas html aqui//g'

También puedes redirigir la salida a un archivo (Recomendado para webservers con ASP) :

lynx "http://www.ejemplo.com/info?cld=312&aac=ugc" -dump > miarchivo.txt


CURL
Es una herramienta para transferir información de un servidor a otro (Está diseñado para trabajar sin intervención del usuario)

Obtienes el código completo de la pagina con:
curl "http://www.ejemplo.com/" 

Puedes agregar la opción -s para hacerlo en modo silencioso:
curl -s "http://www.ejemplo.com/"

También puedes redirigir la saida a un archivo:

curl -s "http://www.ejemplo.com/" > miarchivo.txt

Limitas la salida con expresiones regulares y sed,awk y grep :

curl -s "http://www.ejemplo.com/" | grep -o 'tu expresión regular'


WGET
Es una herramienta para descargar archivos en red/Internet el cual soporta http, https, ftp:

wget http://www.ejemplo.com

Puedes agregar la opción -q  para ejectuar wget en modo silencioso

wget -q http://www.ejemplo.com

También puees dirigir la salida a un archivo:

wget -q http://www.ejemplo.com > miarchivo.txt



Con estas tres herramientas se pueden hacer muchas cosas, ya depende de ti en que y como lo quieras usar.


No hay comentarios: