Cómo hacer Web Scraping con Python

Descubre cómo poder realizar web scraping de una forma sencilla empleando Python.

Web scraping con Python

Para hacer web scraping con Python lo que tenemos que hacer es sustituir lo que hacemos en un navegador web por un programa en Python.

Imagen 0 en ¿Cómo hacer Web Scraping con Python?

En un navegador lo que hacemos es escribir una URL, lo que hace que se envíe una petición, siguiendo el protocolo HTTP, a un servidor, el cual nos devuelve el código HTML que nuestro navegador consigue interpretar y transformar con ese aspecto visual que vemos en las páginas web.

Con Python podemos hacer exactamente lo mismo, crear programas que generen peticiones al servidor y recibir el código fuente en formato HTML.

Además existen librearías como Beautiful Soup que permiten analizar los HTML y extraer las partes que nos interesen.

En general, un código HTML, el código fuente de una página, contiene muchísima información, de la cual solo nos interesan ciertas partes.

Imagen 1 en ¿Cómo hacer Web Scraping con Python?

Por ejemplo, podemos extraer los enlaces de una página web, lo que sería un web crawler. Esto se haría detectando este tipo de estructuras de anclaje, marcadas con la etiqueta a, y así podemos extraer los valores de los atributos href.

Práctica de web scraping con Python

Vamos a ver un ejemplo de web scraping con Python.

Lo primero que haremos será utilizar una para abrir una página web y leer el contenido en HTML. Para hacerlo, en nuestro IDE escribimos el siguiente código, indicando la URL de la web que queremos leer:

	import urllib.request
	datos = urllib.request.urlopen(‘https://www.openwebinars.net’).read().decode()

Una vez hecho, la variable datos contendrá todo el HTML de esa web, lo que no nos interesa porque está en bruto. Necesitamos poder extraer las partes que nos interesen, para ello vamos a extraer la librería Beautiful Sup:

import sys
	!{sys.executable} -m pip install beayutifulsoup4

Una vez instalada esta librería, lo que haremos será transformar todo el HTML extraído en un objeto de BeautifulSoup, el cual llamaremos soup. Una vez tenemos ese objeto, vamos a extraer todas las etiquetas de anclaje, que las guardaremos en la variable tags, la cual va a contener todas las etiquetas que tengan hipervínculos, y cada una de ellas las vamos a recorrer con un bucle for e imprimiremos el contenido del atributo href.

from bs4 import BeautifulSoup
soup =  BeautifulSoup(datos)
tags = soup(‘a’)
for tag in tags:
		print(tag.get(‘href’))

Ejecutamos lo anterior y podemos ver que se imprimen todos los enlaces que existen en la web que hemos indicado.

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 la suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.

También te puede interesar...

Experto en Bases de Datos

Experto en Bases de Datos

18 horas y 15 minutos · Carrera

Conviértete en un experto en bases de datos, tanto relacionales como no relacionales.

Metodologías y Herramientas

Qué es y por qué usar el Web Scraping

17 Junio 2019 Rafael Zambrano
Web scraping

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

4 horas y 4 minutos · curso

  • Backend

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