Saltar al contenido

Implementando el Web Scraping con BeautifulSoup

En esta guía, rasparemos los datos de un artículo de Wikipedia sobre la película Vengadores: Endgame . Especificaremos la dirección URL de la página web usando la primera línea de código de abajo. URL es un acrónimo de Universal Resource Locator , que se centra en las direcciones web y tiene dos componentes:

  1. Identificador de protocolo, denotado por http:
  2. Nombre del recurso, denotado por es.wikipedia.org/wiki/Avengers:_Endgame en este caso

Estos dos componentes especifican completamente la dirección web. La primera línea de código de abajo especifica la url del enlace de Wikipedia a la película, mientras que la segunda línea extrae la respuesta como un objeto HTML. HTML es un acrónimo de *Hyper-Text Markup Language (Lenguaje de marcado de hipertexto) y es el lenguaje estándar para las páginas web. Una vez que tengamos el objeto HTML, usaremos el método BeautifulSoup para analizar el documento HTML, como se muestra en la tercera línea de código. La cuarta línea imprime el tipo de objeto.

Implementando el Web Scraping con BeautifulSoup
Implementando el Web Scraping con BeautifulSoup
1234567url ="https://en.wikipedia.org/wiki/Avengers:_Endgame "html = urlopen(url)soup = BeautifulSoup(html,$0027lxml$0027)type(soup)

pitón

Salida:

1bs4.BeautifulSoup

Podemos ver la estructura del objeto que creamos arriba usando el código de abajo.

1print(soup.prettytify())

pitón

Salida:

12345678910111213141516171819202122232425<!DOCTYPE html;<html dir="ltr" lang="en"> <head> <meta charset="utf-8"/> <title> Avengers: Endgame - Wikipedia </title,/guión,/documento.documentElement.className="client-js";RLCONF={"wgBreakFrames":! 1, "wgSeparatorTransformTable":["",""], "wgDigitTransformTable":["",""], "wgDefaultDateFormat": "dmy", "wgMonthNames": ["", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"], "wgNombresDeMesCorto": ["", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Diciembre"], "wgCSPNonce":! 1, "wgCanonicalNamespace":"", "wgCanonicalSpecialPageName":!1, "wgNamespaceNumber":0, "wgPageName": "Avengers:_Endgame", "wgTitle": "Avengers: Endgame", "wgCurRevisionId":938381569, "wgRevisionId":938381569, "wgArticleId":44254295, "wgIsArticle":!0, "wgIsRedirect":! 1, "wgAction": "view", "wgUserName":null, "wgUserGroups":["*"], "wgCategories": ["CS1 usa escritura en ruso (ru)", "CS1 fuentes en ruso (ru)", "Páginas de Wikipedia semiprotegidas contra el vandalismo", "Artículos con descripción corta", "Usar el inglés americano a partir de octubre de 2019", "Todos los artículos de Wikipedia escritos en inglés americano", "Usar mdy data de enero de 2020", "Utilice referencias definidas en la lista a partir de octubre de 2019", "Páginas que utilizan múltiples imágenes con escalas manuales", "Artículos con enlaces de la Enciclopedia Británica", "Purga de las cajas de navegación de los cómics", "Películas 2019", "Películas en inglés", "Películas de acción de ciencia ficción de los años 2010", "Películas de secuelas de los años 2010", "Películas de superhéroes de los años 2010", "2019 películas en 3D", "Invasiones de extraterrestres en las películas", "Películas en línea de tiempo alternativas", "Películas americanas en 3D", "Películas americanas", "Películas americanas de acción de ciencia ficción", "Películas americanas de secuelas", "Vengadores (serie de películas)", "Películas de cruce", "Películas sobre la vida extraterrestre", "Películas sobre la mecánica cuántica", "Películas sobre el cambio de tamaño", "Películas sobre el viaje en el tiempo", "Películas dirigidas por Anthony y Joe Russo", "Películas con personajes antropomórficos", "Películas con música de Alan Silvestri", "Películas ambientadas en 1970", "Películas ambientadas en 2012", "Películas ambientadas en 2013", "Películas ambientadas en 2014", "Películas ambientadas en 2018", "Películas ambientadas en 2023", "Películas ambientadas en Nueva Jersey",¹; /(RLQ = ventana. RLQ||[]).push(function(){mw.loader.implement("[correo electrónico protegido]",function($,jQuery,require,module){/*@nomin*/mw.user.tokens. set({"patrolToken": "+\\N", "watchToken": "+N", "csrfToken": "+N);}); ww/load. php?lang=es&modules=startup&only=scripts&raw=1&skin=vector"> </script;wmf.15 name="generator"/("generador"); <meta content="origin" name="referrer"/("referenciador"); <meta content="origin-cuando-cruzado" name="referrer"/("referenciador"); <meta content="origin-cuando-cruzado" name="referrer"/("referenciador")

El comando print(soup.prettify()) genera una salida larga, que ha sido truncada arriba en aras de la brevedad.