¿Qué es el Web Scraping?

El web scraping también conocido como “raspado de la web” es una técnica de programación usada para la extracción y recopilación de datos en diferentes sitios web, por lo general por medio de los denominados “bots”, “spider” o “crawlers”, y son procesos automatizados usados por muchas empresas digitales.

La evolución de web scraping

Como factor humano comenzó como un proceso de copiar y pegar de diferentes sitios web, de cierta forma apenas como una investigación; sin embargo, con el potencial informático y la creatividad humana se realizaron algoritmos y software automatizado para la recolección, selección y edición de contenido. Como resultado de una evolución constante fue posible ya no solo recopilar información, sino interactuar y hasta controlar acciones dentro de un sitio web.

Aplicaciones generales

  • Se utiliza obtener información de productos
  • Escaneo de contenido entre empresas
  • Escaneo y posterior generación de contenido de forma automatizada

Aplicaciones en el marketing de contenidos

Actualmente la generación de contenidos en los medios digitales genera una amplia gama de visibilidad en Internet, es por eso por lo que usar herramientas automatizadas para obtener contenido y con la posterior edición humana o automatizada en breve, se facilita la creación de contenidos para otros que no son los autores.

Gana visibilidad en redes sociales e interacciona con tendencias

Para las redes sociales la interacción y visibilidad del contenido a través de comentarios e interacciones es vital, por lo anterior que se puedan crear software que involucre el análisis de sentimientos en redes sociales para hacer uso de este con fines personales es una gran ventaja.

Ejemplos de web scraping en Python

import urllib.request
from bs4 import BeautifulSoup

direccionWeb = 'https://dominio.com'
codigo = urllib.request.urlopen(direccionWeb)
ObiBea = BeautifulSoup(codigo)


etiqueta = ObiBea('a')
print('Enlaces en la página principal: \r\n')

for x in etiqueta:
    print(x.contents[0], x.get('href'))

print('\r\n Enlaces secundarios: \r\n')

for x in etiqueta:
    nueva_url = x.get('href', None)
    print('Accediendo a url internos: ' + nueva_url)
    try:
        if nueva_url[0:4]=='http':codigo2 = urllib.request.urlopen(nueva_url)
        else: codigo2 = urllib.request.urlopen(direccionWeb+nueva_url)
        ObiBea2 = BeautifulSoup(codigo2)
        nuevaEtiqueta = ObiBea2('a')
        if len(nuevaEtiqueta) > 0:
            print(len(nuevaEtiqueta, 'enlaces: '))
            for y in nuevaEtiqueta:
                print(y.get('href'))
        else: print('No hay más enlaces')
    except:
        print('No tiene enlaces secundarios')

El siguiente código fuente fue desarrollado en Python, su función es revisar todos los enlaces de la página principal y paginas secundarias disponibles en un sitio web, para mostrar en la consola los enlaces.

Herramientas y software

La siguiente lista de herramientas web permiten realizar la “extracción de contenido” (web scraping)

Sin embargo, en la actualidad existen otras herramientas:

  • El buscador de Google funciona y es el principal buscador en el mundo. En el otro lado del funcionamiento de Google hay un bot o crawler, spider o araña que se encarga de rastrear sitios web en el mundo y concentrarlos en su base de datos para después ofrecer el contenido a los usuarios.

Los bots automatizados de Wikipedia hacen el mismo proceso extracción de información de diferentes sitios web, información que almacenan en grandes bases de datos. Después, también son capaces de editar el contenido, actualizándose y ganando visibilidad en los motores de búsqueda.

Técnicas avanzadas

Las técnicas de programación actuales al momento de escribir este artículo permiten interactuar con el contenido, presionar botones y hasta llenar formularios como solicitudes.

API

Cuando se desarrolla un software para controlar datos, existe un concepto denominado “API” (Application Programming Interface) que permite interactuar en tiempo real con bases de datos de sitios web. Es una forma legal para obtener datos, ya sea de paga o de consulta libre, solo que funciona exclusivamente en la informática.

Por ejemplo, la MLB pone a disposición una API para las estadísticas https://pypi.org/project/MLB-StatsAPI/

Aspectos legales del web scraping

Para las empresas desarrolladoras de contenido en sitios web, el rastreo (web scraping) es ilegal porque se presta al robo de contenido. Para empresas de comercio electrónico representa un riesgo al comprometer precios de productos.

Facebook, LinkedIn y otras redes sociales prohíben usar la extracción de información dentro de sus políticas legales expuestas en sus sitios web, aplicando seguridad informática (ciberseguridad).

Seguridad para sitios web

El primer elemento de seguridad que se necesita es poner en tu sitio web una política de términos y condiciones para advertir a los visitantes humanos que no está permitida la extracción automatizada (web scraping) de contenido.

Tomando en cuenta que una aplicación informática de web scraping no se va a detener por tu política de términos y condiciones, puedes hacer uso de herramientas de software que impidan el rastreo de contenido.

Por ejemplo:

  • Modificando el archivo de configuración de tu servidor para impedir el acceso a bots.
  • Bloqueando países que no consumen tu información.
  • Limitando las peticiones de esas IP.
  • Creando honeypots.
  • Previniendo el hotlinking.
  • Proporcionando API para controlar el consumo de información (recomendación por el experto en ciberseguridad Álavaro Chirou).

Fuente: https://web.archive.org/web/20170729001446/https://sitelabs.es/web-scraping-introduccion-y-herramientas/