1. Home
  2. Glosario

Web scraping

¿Qué es el web scraping?

El web scraping, que suele ser traducido por “raspado de páginas web», consiste en la navegación automática por una web y al mismo tiempo realizar la extracción de los datos encontrado para, posteriormente, analizar y manipular los datos extraídos en base a ciertos parámetros.

A la aplicación o software creado para scrapear se le denomina bot, spider o crawler. Muchas webs tratar de protegerse de esas aplicaciones para salvaguardar sus datos. Un ejemplo de ello lo tenemos en los Captcha, que están en muchos formularios de suscripción y que evitan, no solo que nuestra base de datos de suscriptores recojan cuentas de correos falsas, también evitan el acceso de los crawlers a ciertas zonas de un sitio web.

3. ¿Objetivos del web scraping?

La información que se obtiene es muy valiosa, por ello el “raspado de datos» se lleva a cabo con muy diversos objetivos, se podría decir que son infinitos como lo son las posibilidades del data mining, no obstante algunos de los más comunes son:

  • Crear bases de datos de correos, es quizá uno de los usos más evidentes y luego con esas direcciones de crean bases de datos con los que realizar spam.
  • Conocer a los competidores, dado que al scrapear su sitio web obtienes datos que a simple vista no se perciben y que son muy valiosos para posicionarnos en el mercado.
  • Control y comparación de ofertas online, tener constancia en todo momento de las ofertas que están ofreciendo en otras webs.
  • Generar alertas, justo para monitorizas aspectos que nos interese controlar de una web. Localizar links que no funcionan, para con ello solucionarlos y mejorar la estrategia de posicionamiento SEO.
  • Monitorear los precios de la competencia y localizar tendencias, con ello se puede determinar las estrategias de precios de las webs y reaccionar ante ello si fuera necesario.
  • Tener presente cualquier cambio de una web, con lo que tenemos conocimiento de cualquier cambio que se haga en nuestra web o en otras.
  • Rastrear la reputación online y presencia online, gracias a lo que se puede conocer la posición que les otorgar los buscadores web a las entradas de un cierto blog.
  • Recolección de fichas de productos, para los ecommerce es muy interesante conocer la composición de las fichas de productos de la competencia, para mejorar las propias.
  • Recopilar datos de varias webs y compararlos, para tener datos sobre las tendencias y técnicas usadas por dichas webs en diversos aspectos de interés.

2. ¿El web scraping es legal?

Esta pregunta es muy común y la respuesta es, que en ocasiones es legal y en ocasiones no lo es.

Es decir, los scrapers siempre deben tener en cuenta los derechos de propiedad intelectual de las web para que ello no pueda ser considerado ilegal, y es legal siempre que los datos obtenidos estén disponibles libremente para terceros en la propia web.

Muchas veces los propietarios de las web ofrecen el uso de una API para que no sea necesario realizar scraping, y conseguir los datos de forma sencilla. A nadie le molesta, o casi nadie, que el crawler de Google acceda a su web para indexar los contenidos de la misma y, con ello, tomar las mejores posiciones en las SERPs. Para hacer scraping de forma legal se han de tener en cuenta estos aspectos:

  • No se puede hacer uso de los datos recabados con fines ilegales o dañinos.
  • Siempre se ha cumplir con los derechos de propiedad intelectual y legal del sitio web.
  • Si se requiere el registro de los usuarios o un contrato de utilización, dichos datos no podrán ser recopilados mediante scraping.
  • Los propietarios de las webs tienen derecho a colocar impedimentos técnicos para evitar el web scraping y no deben ser ignorados.

3. ¿Como protegemos del web scraping?

Aunque en tu sitio web manifiestes de forma explicita que no permites web scraping, nunca faltaran quienes deseen hacerlo, por lo que es necesario que implementes una serie de acciones para protegerte, como pueden ser:

  • Adecuando el archivo .htaccess de acuerdo a los patrones de las IPs que intentan hacer web scraping, eso es: bloqueándolas.
  • Controlar las solicitudes entrantes, para ello la identificación de IPs y su filtrado en el firewall es una medida muy validad para tratar de evitar el “raspado» de tu sitio web.
  • Detectando el hotlinking y evitando, no permitiendo el uso recursos de nuestro servidor en lugares no autorizados.
  • Limita las solicitudes por dirección IP, con lo que un atacante no puede establecer múltiples conexiones desde la misma IP.
  • Modificando la estructura del HTML, dado que los rastreadores se centran en analizar el HTML, cambiarlo con cierta frecuencia dificulta al atacante hacer scraping de forma sencilla en tu web.
  • Ofrece un API, para así poder monitorizar y restringir los datos que se pueden extraer de tu sitio. Ello no evita el web scraping malintencionado pero reduce, en gran medida, el número de veces que nuestra web se enfrente al raspado de datos.
  • Usa honeypots o enlaces a contenido falso, es decir contenido especifico que no es visible para un visitante normal de nuestro sitio web. Detectando asi a los crawlers indeseados, siendo necesario deshabilitar esos enlaces en el archivo robots.txt para los bots de los buscadores.
  • Uso de tokens de falsificación de solicitud (CSRF), así evitarás que las automatizaciones de los bots realicen solicitudes abusivas.