WebScraping WebCrawling
WebScraping WebCrawling
GEOINTELIGENCIA
COMPUTACIONAL
Web Crawling: Es un proceso por el cual un robot web navega sistemáticamente a través de internet
explorando webs y siguiendo links con el propósito de recoger el contenido web en otro sistema.
Todos los buscadores utilizan estos bots, llamados crawlers, para indexar las diferentes webs en sus
buscadores.
Web Scraping: Otro proceso que comparte las mismas características que el webcrawling pero que se
enfoca más en la transformación de datos sin estructura en la Web (como el formato HTML) en datos
estructurados que pueden ser almacenados y analizados en una base de datos central, en una hoja de
cálculo o en alguna otra fuente de almacenamiento.
Se puede pensar que el Web Crawler dirige al Web Scraper a través de la red para que pueda recabar
la información solicitada en un sistema de almacenamiento concreto. En otras palabras, el Web
Crawler explora la red en busca de sitios y el Web Scraper obtiene información de los sitios
seleccionados.
La combinación de los procesos de Data Crawling y Data Scraping sirve para mejorar las operaciones
y dotar de información que permite tomar decisiones que pueden resultar de gran impacto para
investigaciones de diversos temas.
La técnica del Web Scraping suele ser muy utilizada para obtener un gran volumen de información de
manera automatizada. Analizar esta información puede resultar muy útil en los procesos de toma de
decisiones ya que las fuentes pueden tener información de múltiples temas.
Otros posibles fines del Web Scraping pueden ser la automatización de tareas como, por ejemplo:
reserva de productos o servicios web, agregación de información bancaria, iniciación de pagos,
verificación de servicios Web.
En ocasiones estas dos técnicas se suelen confundir. Si bien, poseen una relación entre ambas y parte
de la técnica es similar, hay una diferencia muy marcada en cuanto a su metodología. En el caso de
Web Scraping, se conoce como el “raspado web” o bien “raspado de datos” y en el caso de Web
Crawling se conoce como el “rastreo web”.
Particularmente el “rastreo web” tiene que ver con el proceso de lograr ubicar diversos datos en
Internet y saber de qué link (hipervínculo) fueron obtenidos. Esta técnica, además, permite que se
guarden dichos links como parte del proceso de rastreo. El proceso de rastreo web se lleva a cabo con
un software que permite acceder a diversos sitios web, y luego, realizar una lectura de la página en
forma completa para crear un índice de motores de búsqueda. Los principales motores de búsqueda
del mercado que utilizan esta técnica son: Google o Bing, los cuales poseen un programa de este estilo,
lo que también se conoce más comúnmente como: “araña web” o "bot". Estos programas permiten
generar un índice para luego poder realizar consultas contra el índice generado, para así localizar
páginas web que coincidan con la consulta de filtros realizadas. Otro de los fines que se le puede dar
En resumen, el rastreo web es el método que realizan los motores de búsqueda, es decir, se busca
cualquier tipo de información, en cambio, el raspado web está apuntado a determinados sitios web
específicos para localizar datos determinados.
Beautiful soup
La biblioteca Beautiful Soup permite extraer contenido y transformarlo en una lista, matriz o
diccionario de Python.
Esta biblioteca es muy popular porque tiene una documentación completa y sus funcionalidades están
bien estructuradas. Además, existe una gran comunidad que ofrece soluciones variadas para utilizar
esta biblioteca.
Es una biblioteca de Python para analizar documentos HTML (incluyendo los que tienen un marcado
incorrecto). Esta biblioteca crea un árbol con todos los elementos del documento y puede ser utilizado
para extraer información. Por lo tanto, esta biblioteca es útil para realizar Web Scraping.
EJEMPLO
Para entender mejor los conceptos mencionados anteriormente, revisa estos ejemplos. Para poder
realizarlos no es necesario instalar absolutamente nada, simplemente basta con contar con una
cuenta de Google (Gmail).
Lo primero que hay que hacer es, en el navegador, realizar la búsqueda de Google Colab. Sin entrar
en detalle, Google Colab (Google Colaboratory) es una plataforma que permite escribir y probar código
en Python sin la necesidad de instalar o configurar software adicional.
Es posible que lo siguiente que veamos sea una ventana emergente que nos de la opción de crear un
nuevo cuaderno de trabajo.
De no ser así, podremos crear un nuevo cuaderno de trabajo seleccionando la opción destinada para
ello en el menú principal como se muestra en la siguiente imagen.
Lo que obtendremos como resultado es un cuaderno de trabajo vacío, en el cual tenemos la opción
de agregar celdas de código y celdas de texto. Agrega tantas celdas de código como sean necesarias
con el botón +Code. Si necesitas agregar algún comentario, es recomendable hacerlo en las celdas de
texto. Para agregar celdas de texto utiliza el botón +Text
Ya que hemos preparado el cuaderno de trabajo, en la primera celda de código escribe lo siguiente:
from bs4 import BeautifulSoup
import urllib.request
Lo que hemos hecho es “importar” la librería BeautifulSoup junto con algunos métodos que nos
permitirán extraer, a partir de un requerimiento (request), información de un sitio web mediante su
url.
Para este ejemplo obtendremos información del sitio de Reddit (México). Para ello crea una nueva
celda de código y escribe lo siguiente:
redditFile = urllib.request.urlopen('https://www.reddit.com/r/mexico/')
redditHtml = redditFile.read()
redditFile.close()
<a href="URL">Hypervínculo</a>
Lo que hemos hecho es identificar todas las etiquetas que comiencen con ‘a’ seguidas de ‘href’
Probemos el funcionamiento.
En cada una de las celdas que acabas de crear pulsa sobre el botón “play” que aparece del lado
izquierdo de cada celda.
La línea
if 'comments' in links.get('href'):
verifica que la palabra “comments” se encuentre dentro del enlace. De esta forma el resultado es un
poco diferente.
Eso nos permitirá tener acceso al contenido de la página web del periódico El Universal a través de su
url. Nota que el código es el mismo que el anterior (utilizado para Reddit) pero con unos pequeños
cambios. Ahora escribe, en una nueva celda lo siguiente:
soup = BeautifulSoup(UniversalHtml)
UniversalAll = soup.find_all('a')
for links in UniversalAll:
print(links.get('href'))
Como ya hemos visto, eso nos permite tener acceso a los enlaces dentro de una página, en este caso,
la página de El Universal.
Como verás, se genera una lista bastante extensa de enlaces. Si quisiéramos tener acceso a las
noticias de alguna sección en específico, por ejemplo, a la sección de tendencias, tendríamos que
identificar la palabra por la cual deberíamos de filtrar. Para ejemplificar este caso, en una nueva
celda de código escribe lo siguiente:
soup = BeautifulSoup(UniversalHtml)
UniversalAll = soup.find_all('a')
for links in UniversalAll:
if 'tendencias' in links.get('href'):
print(links.get('href'))
Para tener acceso al texto de una de las notas en la lista anterior lo primero es identificar su enlace y,
posteriormente, solicitar el contenido de la etiqueta <p> como se muestra a continuación.
nota = 'https://www.eluniversal.com.mx/tendencias/los-mejores-memes-y-reacciones-por-concierto-
de-rosalia-en-el-zocalo/'
UniversalFile = urllib.request.urlopen(nota)
UniversalHtml = UniversalFile.read()
UniversalFile.close()
soup = BeautifulSoup(UniversalHtml)
UniversalAll = soup.find_all('p')
for etiqueta in UniversalAll:
print(etiqueta)
Lo que obtendremos como resultado es un conjunto de etiquetas que contienen texto, sin embargo,
el texto aún requiere un poco de limpieza.
- Web Scraping with Python: Collecting Data from the Modern Web. Consultado en marzo del 2023.
- Python Automation Cookbook: 75 Python automation ideas for web scraping, data wrangling, and
processing Excel, reports, emails, and more, 2nd Edition. Consultado en marzo del 2023.
- Getting Structured Data from the Internet: Running Web Crawlers/Scrapers on a Big Data Production
Scale. Consultado en marzo del 2023.
- Web Scraping with PHP, 2nd Edition A php[architect] guide Matthew Turland, Oscar Merida, Ben
Ramsey. Consultado en marzo del 2023.
- Practical Web Scraping for Data Science Best Practices and Examples with Python Seppe vanden
Broucke, Bart Baesens. Consultado en marzo del 2023.