0. Configuración inicial

Llamar/instalar las librerías para esta sesión:

## llamar la librería pacman: contiene la función p_load()
require(pacman)
## Loading required package: pacman
## p_load llama/instala-llama las librerías que se enlistan:
p_load(tidyverse, # contiene las librerías ggplot, dplyr...
       rvest)# web-scraping

1. Introducción a web scraping

Web scrapin es una técnica usada para automatizar los procesos de extracción de información de sitios web, como tablas, textos o link a otras páginas. ¿Por qué hacer web-scraping?

  • Funciona mejor que copiar y pegar la información de la web.
  • Es rápido y replicable.

1.1 robots.txt

El robots exclusion standard, también conocido como protocolo de exclusión para robots o simplemente robots.txt, es un protocolo estándar usado en algunos sitios web para comunicarse con buscadores y otros robots en la web. Este protocolo le indica a los buscadores o robots web sobre las partes de ese sitio web que no deben/pueden procesarse o escanearse. Veamos algunos ejemplos de robots.txt:

Ejemplo 1: permite a cualquier robots procesar/escanear todos los elementos de la pagína

# robots.txt for https://example.com/
User-agent: *
Disallow:

Ejemplo 2: no permite procesar/escanear ningún elemento de la pagína

# robots.txt for https://example.com/
User-agent: *
Disallow: /

Ejemplo 3: no permite procesar/escanear ningún elemento del archivo /public/index.html

# robots.txt for https://example.com/
User-agent: *
Disallow: /public/index.html

Ejemplo 4: no le permite al robot BadBot procesar/escanear ningún elemento de la pagína:

# robots.txt for https://example.com/
User-agent: BadBot
Disallow: /

Puede accederse al protocolo de exclusión de una página agregando robots.txt al dominio principal de la página. Por ejemplo https://example.com/robots.txt

## Acceder al robots.txt de wikipedia
browseURL("https://en.wikipedia.org/robots.txt")

1.2 Hyper Text Markup Language (HTML)

Un Hyper Text Markup Language no es un lenguaje de programación, sino más bien un lenguaje de marcado de hipertexto. Un HTML se escribe en su totalidad con elementos, los que a su vez están constituidos por etiquetas, contenido y atributos (mas adelante veremos que es cada uno de ellos). Los elementos están estructurados como un árbol (tronco, ramas, hojas). Por tanto, para poder extraer un elemento (por ejemplo una hoja), se rastrear la ruta del nodo o etiqueta (indicarle el tronco y la rama que contiene la hoja). Los HTML son interpretados por los navegadores web visualizando su contenido (una página web por ejemplo) tal y como estamos acostumbrados a verlo. Puede acceder al HTML de una página web así: