Método import urllib: cosas que debes saber

| Última modificación: 15 de enero de 2025 | Tiempo de Lectura: 2 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En ocasiones he tenido que trabajar con recursos en línea desde Python y hace algún tiempo me topé con el paquete de import urllib. Este es un m ódulo que nos permite manejar URLs, realizar solicitudes HTTP entre otras muchas funciones. Hoy quiero mostrarte cómo funciona y qué debes hacer para sacarle el mayor provecho.

import urllib

¿Qué es import urllib?

Urllib es un módulo que se encarga de enviar y recibir datos entre tu aplicación Python y recursos en línea tales como páginas web o APIs. Import urllib es la manera en la que podemos usar urllib en Python, ya que ese ese el comando que utilizamos para importarlo. Con este puedes acceder a diferentes herramientas que te permiten realizar solicitudes HTTP, gestionar proxies, autenticar usuarios y manejar errores de red.

¿Cómo empezar a usar import urllib?

Con import urllib puedes realizar muchas acciones, desde tareas más básicas como obtener el contenido de una página web:

El siguiente código nos muestra cómo realizar una solicitud HTTP básica con urllib.request:

import urllib.request

url = 'http://python.org/'
with urllib.request.urlopen(url) as response:
html = response.read()
print(html)

Este fragmento accede a la página de Python, descarga su contenido y lo imprime. Fácil, ¿verdad? Pero esto es solo el comienzo.

Gestión de datos y encabezados HTTP

A menudo necesitarás enviar datos a un servidor o personalizar tu solicitud HTTP añadiendo encabezados. Aquí te mostramos un ejemplo de cómo hacerlo:

  • Enviar datos con una solicitud POST: Para enviar datos como un formulario HTML, usa el siguiente código:
import urllib.parse
import urllib.request

url = 'http://www.example.com/register'
values = {'name': 'John Doe', 'language': 'Python'}
data = urllib.parse.urlencode(values).encode('ascii')
req = urllib.request.Request(url, data)
with urllib.request.urlopen(req) as response:
result = response.read()
print(result)
  • Personalizar encabezados: Algunos servidores requieren encabezados específicos para procesar tu solicitud. Puedes incluirlos así:
headers = {'User-Agent': 'Mozilla/5.0'}
req = urllib.request.Request(url, headers=headers)

Capturar errores con el módulo de import urllib

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Si accedes y trabajas con recursos en línea, es inevitable enfrentarte a errores como URLs inexistentes o problemas de autenticación. Afortunadamente, urllib ofrece excepciones específicas para manejarlos.

  • Capturar errores HTTP: Usa HTTPError y URLError para manejar errores comunes:
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError

try:
req = Request('http://www.invalid-url.com')
with urlopen(req) as response:
print(response.read())
except HTTPError as e:
print(f'Error HTTP: {e.code}')
except URLError as e:
print(f'Error de conexión: {e.reason}')

Algunas funcionalidades presentes en import urllib

Si necesitas personalizar aún más tus solicitudes, urllib tiene herramientas con las que puedes hacerlo, a saber.

  • Uso de proxies: Configura proxies para tus solicitudes:
from urllib.request import ProxyHandler, build_opener, install_opener

proxy_support = ProxyHandler({'http': 'http://proxy.example.com:8080'})
opener = build_opener(proxy_support)
install_opener(opener)
  • Autenticación básica: Para manejar autenticaciones, utiliza HTTPBasicAuthHandler:
from urllib.request import HTTPBasicAuthHandler, build_opener, install_opener

auth_handler = HTTPBasicAuthHandler()
auth_handler.add_password(None, 'http://example.com', 'user', 'password')
opener = build_opener(auth_handler)
install_opener(opener)

Si te interesan estas temáticas y quieres seguir aprendiendo sobre ello, te invitamos a unirte a nuestro bootcamp en programación desde cero para que aun sin conocimientos aprendas los fundamentos más importantes de esta área y puedas conseguir tu primer empleo en el mundo tech. No dudes más y accede a mejores oportunidades laborales, ¡inscríbete ahora!

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a programar desde cero

Full Stack JR. Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado