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.
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.
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.
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.
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.
La siguiente lista de herramientas web permiten realizar la “extracción de contenido” (web scraping)
Sin embargo, en la actualidad existen otras herramientas:
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.
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.
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/
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).
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: