Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Diferencias entre Scraping, Crawling y Parsing

Rafael Zambrano
Diferencias entre Scraping, Crawling y Parsing
El reproductor de video será cargado en breves instantes.

Te aclaramos tus dudas sobre tres conceptos que a veces se confunden, como son el web scraping, web crawling y parsing.

Diferencias entre scraping, crawling y parsing

Es importante entender cuáles son sus las diferencias entre estos tres conceptos, por lo que vamos a hacer una introducción a los mismos.

El web scraping consiste básicamente en extraer datos de una o varias páginas web.

El concepto de web crawling es más genérico, y se refiere a la extracción de los hipervínculos de una web.

Normalmente, cuando extraemos datos de una web vamos a tener que parsear esos datos o realizar un parsing para extraer las partes o la información que nos interesa.

Arañas web o crawlers

Las arañas web o crawlers son programas, normalmente son robots, que inspeccionan páginas de la web de una forma metódica y automatizada.

Su uso más frecuente se centra en:

  • Crear una copia de todas las webs visitadas.
  • Procesarlas posteriormente para un motor de búsqueda que indexe esas páginas.
  • Crear un sistema de búsquedas rápidas.

El funcionamiento de las estas arañas web es el siguiente:

  • Visitan una serie URLs.
  • Se descarga el contenido de esas páginas, para lo cual hay que realizar un web scraping.
  • Identifican los hiperenlaces.
  • La araña web va a visitar recursivamente estos hiperenlaces.
  • Descarga las nuevas páginas.
  • Analiza los nuevos enlaces.
  • Y así sucesivamente.

De esta forma se crea una gran tela de araña, de ahí su nombre, conteniendo todas las relaciones entre una gran cantidad de webs.

En la imagen vemos el esquema del funcionamiento de una araña web o crawler:

Imagen 0 en Diferencias entre Scraping, Crawling y Parsing

Tenemos una URL de un servidor, la araña web va a solicitar los datos de servidor, normalmente los va a importar en un código HTML, el cual contiene todos los hipervínculos. La araña web va a extraer estos enlaces, los va a añadir a una lista y va a volver a visitar todos estos enlaces recursivamente, siempre guardando el resultado en un archivo de tipo log.

Ejemplo

Vamos a ver un ejemplo de lo anterior utilizando Python.

Para ello nos vamos a conectar a una página web, que en este caso va a ser la página web de un profesor de matemáticas y que contiene una serie de enlaces.

Lo que haremos será un crawler de dos niveles, que accederá a todos los enlaces y dentro de cada uno de ellos va a acceder a los nuevos enlaces que haya. Podríamos seguir incorporando niveles, pero en este ejemplo lo haremos de dos niveles.

El código es el siguiente:


import urllib
from bs4 import BeautifulSoup

url = ‘http://www-math.mit.edu/~gs/’
html = urllib.request.urlopen(url)
soup = BeautifulSoup(html)

tags = soup(‘a’)

print(‘Enlaces en la página principal: \r\n’)

for tag in tags:
	print(tag.content[0], tag.get(‘href’))

print(‘\r\n Enlaces de las páginas secundarias: \r\n’)
for tag in tags:
	newurl = tag.get(‘href’)
	print(‘* Accediendo a los enlaces dentro de la página’,newurl)
	try:
		if newurl[0:4]==’http’ : html2 = urllib.request.urlopen(newurl)
		else: html2 = urllib.request.urlopen(url+newurl)

En el mismo importamos las dos librerías que utilizarmos, como son urllib y Beautiful Soup. La primera nos permite extraer el código HTML de la web, y la segunda nos permite extraer los enlaces, que tienen una estructura fija y comienzan con la etiqueta a en HTML.

Primero extraemos el código HTML, lo transformamos a un objeto de Beautiful Soup, con el cual podemos parsear ese HTML. Después extraemos las etiquetas dónde están los enlaces e imprimimos los enlaces que están en la página principal.

Para cada uno de esos enlaces, con un bucle for, vamos a ir accediendo nuevamente a los mismos e iremos imprimiendo los enlaces que haya dentro de esas webs.

Al ejecutar el código se muestran los enlaces que hay en la página principal y los enlaces de las páginas secundarias.

Si no se puede acceder a un enlace, se muestra el mensaje “Algo ha fallado”, y siempre que se pueda acceder se muestra el número de enlaces que hay y cuáles son.

De esta forma, con pocas líneas de código, podemos generar un crawler simple y acceder a una gran cantidad de enlaces, simplemente haciéndolo de dos niveles de profundidad.

Esta es la idea de un web crawler, de hecho, el primer buscador de Google debería ser algo parecido a este ejemplo, bastante simple, para acceder a enlaces, descargar páginas y volver a buscar enlaces.

Conviértete en un experto del web scrapping, aprende cómo extraer datos de sitios web utilizando Python como lenguaje de programación.

cta-curso-web-scraping

Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Experto en base de datos

Experto en base de datos

carrera

Incluye 4 cursos:

  • Curso de creación y administración de Bases de Datos SQL
  • Curso de SQL desde Cero
  • Curso de PostgreSQL: Instalación, configuración y optimización

y 1 cursos más!

Duración: 15 horas y 14 minutos

Curso de Web scraping: Extracción de datos en la Web

Curso de Web scraping: Extracción de datos en la Web

curso

Con este curso aprenderás:

  • Aprenderás a extraer datos web de diversa naturaleza
  • Conocerás librerías del lenguaje Python destinadas a la extracción y procesamiento de datos web
  • Conocerás cómo se comparten datos en la web a través de APIs

Duración: 4 horas y 6 minutos

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars