En un mundo ideal, toda la data que necesitas esta adecuadamente presentada en un documento abierto y formateado en forma adecuada, de forma que es fácil de descargar y utilizar para cualquier propósito.

En el mundo real, la data esta desordenada, muy raro que este empaquetada como necesitas, y frecuentemente desactualizada.

Frecuentemente, la información que necesitas se encuentra atrapada en dentro de un sitio web. Mientras que algunos sitios web hacen un esfuerzo por presentar los datos en una forma limpia y estructurada, muchas no. Los procesos de Crawling, scraping y limpieza de la data son actividades necesarias para una gran cantidad de actividades, desde obtener la estructura de un sitio web hasta la recopilación de datos que solo se encuentran en formato web, o tal vez, encerrados en una base de datos propietaria.

Tarde o temprano, vas a encontrar la necesidad de realizar un crawling y scraping para obtener los datos que necesitas, y casi seguro requerirás de un pequeño código para hacerlo bien. El cómo lo hace, depende de usted, pero es claro que la comunidad de Python tiene grandes herramientas, frameworks y documentación para la captura de datos de sitios web.

A continuación algunas excelentes herramientas de Python para realizar crawling y scraping de un sitio web y analizar los datos que se necesitan.

Pyspider

Empecemos por Pyspider, una herramienta para web-crawler con una interface de usuario basada en la web que facilita el seguimiento de múltiples operaciones. Es una opción extensible, con varias bases de datos de back-end y colas de mensajes compatibles, y varias funciones útiles integradas, desde la priorización hasta la capacidad de reintentar páginas fallidas, el rastreo de páginas por antigüedad y otros. Pyspider trabaja con Python 2 y Python 3, y para realizar un crawling más rápido, puede usarlo en un formato distribuido con múltiples crawlers funcionando al mismo tiempo.

El uso básico de Pyspider está bien documentado, incluido ejemplos con fragmentos de código, y puede consultar una demostración en línea para obtener una idea de la interface de usuario. Licenciado bajo la licencia de Apache 2, pyspider todavía se esta desarrollando activamente en GitHub.

MechanicalSoup

MechanicalSoup es una librería para crawling desarrollada en torno a la librería de análisis de HTML Beautiful Soup. Si las necesidades de crawling son simples, pero es necesario que ingrese información en algunas casillas y no desea construir su propio rastreador para esta tarea, es una buena opción a ser considerada.

MechanicalSoup esta bajo la licencia del MIT. Desafortunadamente la documentación no es de las mas adecuadas en este momento.

Scrapy

Scrapy es un framework para scraping soportado por una comunidad muy activa con la cual puede construir su propia herramienta. Además de las herramientas de scraping, se puede exportar la data recopilada en varios formatos, como JSON o CSV, y almacenar los datos en un backend de su elección. También tiene una serie de extensiones integradas para tareas como el manejo de cookies, suplantación de user-agent, restricción de la profundidad del rastreo, entre otras, así como un API para ampliar fácilmente las funcionalidades.

Para obtener una introducción a Scrapy, consulte la documentación en línea o uno de sus muchos recursos de la comunidad de Scrapy, incluyendo un canal de IRC, Subreddit y una lista de seguidores en StackOverflow. La base del código de Scrapy se puede encontrar en GitHub bajo una licencia BSD.

Conclusión:

Esto esta lejos de ser una lista exhaustiva, y por supuesto, si usted es un desarrollador experto, puede elegir su propio enfoque en lugar de utilizar alguno de estos frameworks. O, tal vez, has encontrado alguna alternativa en un idioma diferente. Si tiene alguna herramienta favorita, por favor, indiquemos en los comentarios.


Este artículo se encuentra basado en 3 Python web scrapers and crawlers

Python: 3 librerías para scraping y crawling
Si te gusto, comparte ...Email this to someone
email
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Google+
Google+
Etiquetado en:        

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook
A %d blogueros les gusta esto: