Accediendo a Datos Web con urllib de Python: Guía Práctica
Accediendo a Datos Web con urllib de Python
¿Qué es urllib?
urllib es un módulo integrado de Python que simplifica apertura de URLs y manejo de recursos web. Ofrece funciones y clases para fetch, parse y procesamiento de URLs, permitiendo a desarrolladores recuperar XML, HTML, JSON y otros formatos de datos directamente desde internet.
En este tutorial demostraremos cómo usar urllib para:
- Abrir una URL y verificar el código de respuesta HTTP.
- Leer el contenido HTML completo de una página web.
Abriendo una URL con urllib
Antes de ejecutar cualquier petición de red, importa el módulo urllib apropiado:
import urllib.request # Python 3
# import urllib2 # Python 2 (deprecated en releases recientes)
Define tu rutina main, especifica la URL objetivo y abre conexión con urlopen(). Usaremos el canal de YouTube de Guru99 como ejemplo:
def main():
url = urllib.request.urlopen("https://www.youtube.com/user/guru99com")
print("código resultado: " + str(url.getcode()))
data = url.read()
print(data.decode('utf-8'))
if __name__ == "__main__":
main()
El método getcode() devuelve el código de estado HTTP (ej. 200 para éxito). El método read() recupera los bytes crudos de la página, que decodificamos a UTF-8 para legibilidad.
Leyendo el Contenido HTML
Una vez abierta la URL, puedes extraer el HTML simplemente llamando read(). Los bytes resultantes representan el documento HTML completo, que puedes parsear con librerías como BeautifulSoup o mostrar directamente.
Abajo, ejemplo visual de la salida HTML decodificada en consola:

Muestras de Código Completo
Para referencia, las siguientes secciones proveen scripts completos para entornos Python 2 y Python 3.
Ejemplo Python 2
import urllib2
def main():
web_url = urllib2.urlopen("https://www.youtube.com/user/guru99com")
print("código resultado: " + str(web_url.getcode()))
data = web_url.read()
print(data)
if __name__ == "__main__":
main()
Ejemplo Python 3
import urllib.request
web_url = urllib.request.urlopen('https://www.youtube.com/user/guru99com')
print('código resultado: ' + str(web_url.getcode()))
print(web_url.read().decode('utf-8'))
python
- Navegando SaaS y Cloud: por qué la gestión de datos meticulosa importa
- Palabras clave e identificadores en Python: Dominando palabras reservadas y convenciones de nomenclatura
- Sentencias, indentación y comentarios en Python: Guía clara
- Variables, constantes y literales en Python – Guía completa
- Dominando tipos de datos en Python: Guía práctica
- Dominando conversión y casting de tipos en Python: Guía completa
- Dominando E/S e importación de módulos en Python: Guía práctica
- Entendiendo variables globales, locales y nonlocal en Python
- Dominando Operaciones de Directorios y Archivos en Python
- Dominando Errores y Excepciones Integradas en Python
- Dominando el Manejo de Excepciones en Python: try, except, else y finally Explicados