Blog
Intro al Web Scraping
- Publicado por: Rafael Fernandez
- Categoría: Blog Web scraping

Definir el web scraping
Aprender sobre las técnicas aplicadas y la legalidad implicada en esta tarea
¿Qué es el Web Scraping?
Web scraping es una técnica informática para extraer información de los sitios web. En general, este tipo de programas de software simulan la exploración humana de la World Wide Web, ya sea con la implementación de bajo nivel de protocolo de transferencia de hipertexto (HTTP), o con la incorporación de un navegador web, como puede ser Internet Explorer o Mozilla Firefox. El web scraping está muy relacionado con la indexación de la web, que indexa información de la web utilizando un robot. Es una técnica universal adoptada por la mayoría de los motores de búsqueda. Por el contrario, el web scraping se centra más en la transformación de los datos no estructurados en la web, generalmente en formato HTML, en datos estructurados que pueden ser almacenados y analizados en una base de datos local, central o de hoja de cálculo. El web scraping también está relacionada con la automatización de la web, que simula la navegación humana utilizando programas. Algunos de los usos principales del web scraping son la comparación de precios en tiendas, monitorizar datos relacionados con el clima de cierta región, detectar cambios en sitios webs o la integración de datos en sitios web.
Técnicas usuales de Web scraping
Web scraping es el proceso de recopilar información de forma automática de una web. Es un campo con desarrollos activos, compartiendo un propósito en común con la visión de la web semántica. Utiliza soluciones prácticas basadas en tecnologías ya existentes. Existen diferentes niveles de automatización que las existentes tecnologías de web scraping pueden brindar:
- Copiar y pegar: algunas veces incluso las mejores técnicas de web scraping no pueden reemplazar la examinación manual de un humano, y a veces ésta puede ser la única vía de solución cuando el lugar que tenemos en mente pone ciertas barreras para evitar que se creen programas para realizar tareas automáticas en este.
- Protocolo HTTP: páginas webs estáticas y dinámicas pueden ser obtenidas haciendo peticiones HTTP al servidor remoto utilizando sockets, etc.
- Aplicaciones para Web scraping: hay muchas aplicaciones disponibles que pueden ser utilizadas para personalizar web scraping. Estas aplicaciones pueden reconocer automáticamente la estructura de cierta página o brindar una interfaz al usuario donde este pueda seleccionar los campos que son de interés dentro del documento. De esta manera no es necesario escribir manualmente código para realizar estas tareas.
- Algoritmos de minería de datos: muchos sitios webs tienen grandes colecciones de páginas generadas dinámicamente a partir de una base de datos. Datos de la misma categoría aparecen usualmente en páginas similares mediante un script o una plantilla. En la minería de datos, un programa detecta estas plantillas en un contexto específico y extrae su contenido.
- Parsers de HTML: algunos lenguajes, como XQuery y HTQL pueden ser utilizados para parcejar documentos, recuperar y transformar el contenido de documentos HTML.
- Uso de expresiones regulares: una posible vía para extraer información de páginas webs pueden ser las expresiones regulares, aunque comúnmente no se recomienda utilizarlas para parcejar el formato HTML.
- Reconocimiento de información semántica: Las páginas que son analizadas podrían incluir metadatos o cierta información semántica como anotaciones o comentarios, los cuales pueden ser usados comúnmente. Si estas anotaciones están en las mismas páginas, como sucede con los microformatos, estas podrían ser de utilidad cuando parcegem el DOM del documento. En otro caso, las anotaciones, organizadas en una capa semántica, son almacenadas y manejadas de forma separada desde otras páginas, por lo que los scrapers pueden recuperar estos esquemas y las instrucciones desde esta capa antes de analizar los documentos.
Cuestiones legales de Web scraping
El web scraping puede ir en contra de los términos de uso de algunos sitios webs. El cumplimiento de estos términos no está totalmente claro. Mientras que la duplicación de expresiones originales puede ser en muchos casos ilegal, en Estados Unidos la corte dictó en Feist Publications v. Rural Telephone Service que la duplicación de hechos está permitida. Las cortes de los Estados Unidos en ciertas ocasiones han reconocido que ciertos usos de los scrapers no deberían estar permitidos. Podría considerarse un ordenador como una propiedad personal, entonces el scraper estaría entrando sin autorización en esta propiedad. En el caso más conocido, eBay vs Bidder Edge, la segunda empresa tuvo que parar de hacer peticiones automáticas al sitio de eBay. En este caso, Bidder Edge pujaba automáticamente para ciertos productos en este sitio. Una de las principales luchas en juzgados por scraping involucró a American Airlines y una empresa llamada FareChase. American Airlines ganó aquella batalla, haciendo que FareChase parara de vender un software que le permitía a los usuarios comparar tarifas en línea si el sitio de American Airlines era incluido. La aerolínea dijo que las búsquedas de FareChase entraban sin autorización en los servidores cuando recopilaban la información públicamente disponible. Southwest Airlines también ha sido víctima de prácticas de web scraping, ha involucrado también a FareChase y a otra empresa llamada Outtask. Aunque las decisiones actualmente tomadas no son uniformes, es difícil ignorar que un patrón está emergiendo, en el que podemos ver que las cortes están preparándose para proteger el contenido propietario en sitios webs comerciales, previendo de esta manera que éste sea utilizado sin el consentimiento de los propietarios de los sitios. Sin embargo, el grado de protección de estos contenidos aún no está establecido. Dependerá del tipo de acceso realizado por los scrapers, de la cantidad de información recopilada y del grado en que afectan estos factores al propietario del sitio web.
Medidas técnicas para detener a los scrapers
El administrador de un sitio web puede utilizar diversas técnicas para detener o disminuir los pedidos de los scrapers. Algunas técnicas incluyen:
- Añadir entradas al archivo robots.txt. de Google y los bots pueden ser detenidos de esta manera.
- Bloquear la dirección IP por dond entran los scrapers.
- Inhabilitar cualquier API que el sitio web pudiera estar brindando.
- Monitorizar el exceso de tráfico proveniente de cierta IP.
- Añadir un CAPTCHA u otro sistema de verificación manual en el sitio web. No se garantiza el completo bloqueo de los scrapers, pero mediante esta técnica se dificulta el acceso de los mismos a los sitios webs.
- Incrementar Javascript y AJAX. De esta forma es más difícil para los scrapers simular las peticiones como si fueran un navegador común.
➡ ¡Excelente! Con estos conceptos básicos ya tienes una base para comenzar tu aprendizaje de Web Scraping.
Continúa con nuestro curso de Web Scraping con Python: