Web Scraping

En este ejercicio realizarás una pequeño script para hacer web scraping sobre el sitio web de un periódico.

¿Qué es web scraping?

“El web scraping se refiere al proceso de extracción de contenidos y datos de sitios web mediante software”1. Es decir, es conseguir de forma automatizada información de uno o varios sitios web.

Ejercicio

En este ejercicio vamos a conseguir la información de las noticias que publica el periódico La Jornada en su sección de Últimas noticias. En su página, el periódico comparte 200 notas con sus fotos, encabezados, resúmenes y vínculos a estas. En una primera fase del ejercicio se van a extraer sólamente los encabezados de cada noticia.

Código

Lo primero que se va a necesitar para hacer web scraping con R es instalar las dependencias necesarias. En este caso se va a usar: rvest. La instalación se hará mediante la instrucción install.packages(‘rvest’)


install.packages('rvest')

Hecho esto, lo siguiente es llamar a esta biblioteca2. La instrucción es library(rvest).


library(rvest)

Con la biblioteca instalada, el siguiente paso es el de la extracción del contenido.

  1. La primer instrucción descarga el html de la página.
  2. Con el código descargado en la variable pagina se extraen todos los elementos con la clase nota
  3. De estos elementos, se va a extraer el encabezado de cada uno.

# Descarga de la página web
pagina <- read_html("https://www.jornada.com.mx/ultimasnoticias")

# Extracción de elementos generales

notas <- pagina %>% html_elements(".nota") 

# Extracción de los encabezados

Encabezados <- notas %>% html_element("h3") %>% html_text2()

Comprobación

Para saber que se han descargado y extraído correctamente los datos, se puede obtener una muestra del contenido de las variables mediante la instrucción head.


head(Encabezados)
[1] "Obligatorio para las personas candidatas participar en los tres debates oficiales: INE"     
[2] "Humo de cigarro activa alarma de incendio en el INE"                                        
[3] "Hallan más de $150 mil en billetes falsos en casa de Iztacalco"                             
[4] "Fallece chofer de tráiler tras persecución en autopista México-Querétaro"                   
[5] "Nueva orden al Ejército de no destruir u ocultar documentos relacionados con 'guerra sucia'"
[6] "\"Trump no se puede meter con México\": Álvarez Máynez"                                     

  1. Recuperado de https://kinsta.com/es/base-de-conocimiento/que-es-web-scraping/ el 18 de enero de 2024↩︎

  2. Vamos a entender por biblioteca a un grupo de programas prehechos que incluyen funciones adicionales a las que ofrece el lenguaje base.↩︎

LS0tDQp0aXRsZTogIlNjcmFwZXIgQsOhc2ljbyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiMgV2ViIFNjcmFwaW5nDQoNCkVuIGVzdGUgZWplcmNpY2lvIHJlYWxpemFyw6FzIHVuYSBwZXF1ZcOxbyBzY3JpcHQgcGFyYSBoYWNlciB3ZWIgc2NyYXBpbmcgc29icmUgZWwgc2l0aW8gd2ViIGRlIHVuIHBlcmnDs2RpY28uDQoNCiMjIMK/UXXDqSBlcyB3ZWIgc2NyYXBpbmc/DQoNCiJFbCB3ZWIgc2NyYXBpbmcgc2UgcmVmaWVyZSBhbCBwcm9jZXNvIGRlIGV4dHJhY2Npw7NuIGRlIGNvbnRlbmlkb3MgeSBkYXRvcyBkZSBzaXRpb3Mgd2ViIG1lZGlhbnRlIHNvZnR3YXJlIlteMV0uIEVzIGRlY2lyLCBlcyBjb25zZWd1aXIgZGUgZm9ybWEgYXV0b21hdGl6YWRhIGluZm9ybWFjacOzbiBkZSB1bm8gbyB2YXJpb3Mgc2l0aW9zIHdlYi4NCg0KDQpbXjFdOiBSZWN1cGVyYWRvIGRlIDxodHRwczovL2tpbnN0YS5jb20vZXMvYmFzZS1kZS1jb25vY2ltaWVudG8vcXVlLWVzLXdlYi1zY3JhcGluZy8+IGVsIDE4IGRlIGVuZXJvIGRlIDIwMjQNCg0KIyMgRWplcmNpY2lvDQoNCkVuIGVzdGUgZWplcmNpY2lvIHZhbW9zIGEgY29uc2VndWlyIGxhIGluZm9ybWFjacOzbiBkZSBsYXMgbm90aWNpYXMgcXVlIHB1YmxpY2EgZWwgcGVyacOzZGljbyBMYSBKb3JuYWRhIGVuIHN1IHNlY2Npw7NuIGRlIMOabHRpbWFzIG5vdGljaWFzLg0KRW4gc3UgcMOhZ2luYSwgZWwgcGVyacOzZGljbyBjb21wYXJ0ZSAyMDAgbm90YXMgY29uIHN1cyBmb3RvcywgZW5jYWJlemFkb3MsIHJlc8O6bWVuZXMgeSB2w61uY3Vsb3MgYSBlc3Rhcy4gRW4gdW5hIHByaW1lcmEgZmFzZSBkZWwgZWplcmNpY2lvIHNlIHZhbiBhIGV4dHJhZXIgc8OzbGFtZW50ZSBsb3MgZW5jYWJlemFkb3MgZGUgY2FkYSBub3RpY2lhLg0KDQojIyBDw7NkaWdvDQoNCkxvIHByaW1lcm8gcXVlIHNlIHZhIGEgbmVjZXNpdGFyIHBhcmEgaGFjZXIgd2ViIHNjcmFwaW5nIGNvbiBSIGVzIGluc3RhbGFyIGxhcyBkZXBlbmRlbmNpYXMgbmVjZXNhcmlhcy4gRW4gZXN0ZSBjYXNvIHNlIHZhIGEgdXNhcjogKipydmVzdCoqLiBMYSBpbnN0YWxhY2nDs24gc2UgaGFyw6EgbWVkaWFudGUgbGEgaW5zdHJ1Y2Npw7NuIGluc3RhbGwucGFja2FnZXMoJ3J2ZXN0JykNCg0KDQpgYGB7ciBJbnN0YWxhY2nDs24gZGUgYmlibGlvdGVjYX0NCg0KaW5zdGFsbC5wYWNrYWdlcygncnZlc3QnKQ0KDQpgYGANCkhlY2hvIGVzdG8sIGxvIHNpZ3VpZW50ZSBlcyBsbGFtYXIgYSBlc3RhIGJpYmxpb3RlY2FbXjJdLiBMYSBpbnN0cnVjY2nDs24gZXMgbGlicmFyeShydmVzdCkuDQoNClteMl06IFZhbW9zIGEgZW50ZW5kZXIgcG9yIGJpYmxpb3RlY2EgYSB1biBncnVwbyBkZSBwcm9ncmFtYXMgcHJlaGVjaG9zIHF1ZSBpbmNsdXllbiBmdW5jaW9uZXMgYWRpY2lvbmFsZXMgYSBsYXMgcXVlIG9mcmVjZSBlbCBsZW5ndWFqZSBiYXNlLg0KDQpgYGB7ciBBc2lnbmFjacOzbiBkZWwgbcOzZHVsb30NCg0KbGlicmFyeShydmVzdCkNCg0KYGBgDQoNCg0KQ29uIGxhIGJpYmxpb3RlY2EgaW5zdGFsYWRhLCBlbCBzaWd1aWVudGUgcGFzbyBlcyBlbCBkZSBsYSBleHRyYWNjacOzbiBkZWwgY29udGVuaWRvLiANCg0KMS4gICAgTGEgcHJpbWVyIGluc3RydWNjacOzbiBkZXNjYXJnYSBlbCBodG1sIGRlIGxhIHDDoWdpbmEuIA0KMi4gICAgQ29uIGVsIGPDs2RpZ28gZGVzY2FyZ2FkbyBlbiBsYSB2YXJpYWJsZSBfcGFnaW5hXyBzZSBleHRyYWVuIHRvZG9zIGxvcyBlbGVtZW50b3MgY29uIGxhIGNsYXNlICpub3RhKg0KMy4gICAgRGUgZXN0b3MgZWxlbWVudG9zLCBzZSB2YSBhIGV4dHJhZXIgZWwgZW5jYWJlemFkbyBkZSBjYWRhIHVuby4gDQoNCmBgYHtyfQ0KDQojIERlc2NhcmdhIGRlIGxhIHDDoWdpbmEgd2ViDQpwYWdpbmEgPC0gcmVhZF9odG1sKCJodHRwczovL3d3dy5qb3JuYWRhLmNvbS5teC91bHRpbWFzbm90aWNpYXMiKQ0KDQojIEV4dHJhY2Npw7NuIGRlIGVsZW1lbnRvcyBnZW5lcmFsZXMNCg0Kbm90YXMgPC0gcGFnaW5hICU+JSBodG1sX2VsZW1lbnRzKCIubm90YSIpIA0KDQojIEV4dHJhY2Npw7NuIGRlIGxvcyBlbmNhYmV6YWRvcw0KDQpFbmNhYmV6YWRvcyA8LSBub3RhcyAlPiUgaHRtbF9lbGVtZW50KCJoMyIpICU+JSBodG1sX3RleHQyKCkNCg0KYGBgDQoNCiMjIyBDb21wcm9iYWNpw7NuDQoNClBhcmEgc2FiZXIgcXVlIHNlIGhhbiBkZXNjYXJnYWRvIHkgZXh0cmHDrWRvIGNvcnJlY3RhbWVudGUgbG9zIGRhdG9zLCBzZSBwdWVkZSBvYnRlbmVyIHVuYSBtdWVzdHJhIGRlbCBjb250ZW5pZG8gZGUgbGFzIHZhcmlhYmxlcyBtZWRpYW50ZSBsYSBpbnN0cnVjY2nDs24gaGVhZC4NCg0KYGBge3IgQ29tcHJvYmFjacOzbiBFbmNhYmV6YWRvc30NCg0KaGVhZChFbmNhYmV6YWRvcykNCg0KYGBgDQoNCg==