Qué es y por qué usar el Web Scraping
El web scraping es una técnica muy utilizada en la actualidad, si quieres saber más sobre ella, te contamos qué es y...
Descubre cómo poder realizar web scraping de una forma sencilla empleando Python.
Tabla de contenidos
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.
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.
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.
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.
También te puede interesar
El web scraping es una técnica muy utilizada en la actualidad, si quieres saber más sobre ella, te contamos qué es y...
Si quieres aprender cómo hacer web scraping con Python de forma sencilla, puedes comenzar realizando este completo curso...