Lenguajes de Programación

Cómo hacer Web Scraping con Python

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

Publicado el 20 de Junio de 2019
Compartir

Conviértete en un Backend Developer
Domina los lenguajes de programación más demandados. Accede a cursos, talleres y laboratorios para crear proyectos con Java, Python, PHP, Microsoft .NET y más
Comenzar gratis ahora

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.

Mejora las habilidades de tus desarrolladores
Acelera la formación tecnológica de tus equipos con OpenWebinars. Desarrolla tu estrategia de atracción, fidelización y crecimiento de tus profesionales con el menor esfuerzo.
Solicitar más información

 


Compartir este post

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.

Tecnología

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

Si quieres aprender cómo hacer web scraping con Python de forma sencilla, puedes comenzar realizando este completo curso de web scraping online y en castellano …

  • Business Intelligence
Artículos
Ver todos