Pitón

Cómo usar Urllib en Python

Cómo usar Urllib en Python

Python contiene un módulo llamado urllib para manejar tareas relacionadas con el localizador uniforme de recursos (URL). Este módulo se instala en Python 3 de forma predeterminada y obtiene URL de diferentes protocolos a través del urlopen () función. Urllib se puede utilizar para muchos propósitos, como leer el contenido del sitio web, realizar solicitudes HTTP y HTTPS, enviar encabezados de solicitud y recuperar encabezados de respuesta. La urllib El módulo contiene muchos otros módulos para trabajar con URL, como urllib.pedido, urllib.analizar gramaticalmente, y urllib.error, entre otros. Este tutorial le mostrará cómo usar el módulo Urllib en Python.

Ejemplo 1: abrir y leer URL con urllib.pedido

La urllib.pedido El módulo contiene las clases y métodos necesarios para abrir y leer cualquier URL. La siguiente secuencia de comandos muestra cómo utilizar urllib.pedido módulo para abrir una URL y leer el contenido de la URL. Aquí el urlopen () se utiliza para abrir la URL, "https: // www.linuxhint.com /."Si la URL es válida, el contenido de la URL se almacenará en la variable de objeto denominada respuesta. La leer() método del respuesta El objeto luego se usa para leer el contenido de la URL.

#!/ usr / bin / env python3
# Módulo de solicitud de importación de urllib
importar urllib.pedido
# Abra la URL específica para leer usando urlopen ()
respuesta = urllib.pedido.urlopen ('https: // www.linuxhint.com / ')
# Imprime los datos de respuesta de la URL
print ("La salida de la URL es: \ n \ n", respuesta.leer())

Producción

La siguiente salida aparecerá después de ejecutar el script.

Ejemplo 2: analizar y anular el análisis de URL con urllib.analizar gramaticalmente

La urllib.analizar gramaticalmente El módulo se utiliza principalmente para separar o unir los diferentes componentes de una URL. El siguiente script muestra diferentes usos del urllib.analizar gramaticalmente módulo. Las cuatro funciones de urllib.analizar gramaticalmente utilizado en la siguiente secuencia de comandos incluyen urlparse, urlunparse, urlsplit, y urlunsplit. La urlparse el módulo funciona como urlsplit, y el urlunparse el módulo funciona como urlunsplit. Solo hay una diferencia entre estas funciones; es decir, urlparse y urlunparse contener un parámetro adicional llamado 'params'para dividir y la función de unión. Aquí, la URL 'https: // linuxhint.com / play_sound_python / 'se usa para dividir y unir la URL.

#!/ usr / bin / env python3
 
# Importar módulo de análisis de urllib
importar urllib.analizar gramaticalmente
 
# Analizando URL usando urlparse ()
urlParse = urllib.analizar gramaticalmente.urlparse ('https: // linuxhint.com / play_sound_python / ')
print ("\ nLa salida de la URL después de analizar: \ n", urlParse)
 
# Unirse a la URL usando urlunparse ()
urlUnparse = urllib.analizar gramaticalmente.urlunparse (urlParse)
print ("\ nLa salida de unión del análisis de URL: \ n", urlUnparse)
 
# Analizando URL usando urlsplit ()
urlSplit = urllib.analizar gramaticalmente.urlsplit ('https: // linuxhint.com / play_sound_python / ')
print ("\ nLa salida de la URL después de dividir: \ n", urlSplit)
 
# Uniendo URL usando urlunsplit ()
urlUnsplit = urllib.analizar gramaticalmente.urlunsplit (urlSplit)
print ("\ nLa salida de unión de dividir URL: \ n", urlUnsplit)

Producción

Las siguientes cuatro salidas aparecerán después de ejecutar el script.

Ejemplo 3: lectura del encabezado de respuesta de HTML con urllib.pedido

La siguiente secuencia de comandos muestra cómo se pueden recuperar las diferentes partes del encabezado de respuesta de la URL a través de la info () método. La urllib.pedido módulo utilizado para abrir la URL, 'https: // linuxhint.com / python_pause_user_input /,'y la información del encabezado de esta URL se imprime a través del info () método. La siguiente parte de este script le mostrará cómo leer cada parte del encabezado por separado. Aquí el Servidor, Fecha, y Tipo de contenido los valores se imprimen por separado.

#!/ usr / bin / env python3
# Módulo de solicitud de importación de urllib
importar urllib.pedido
# Abre la URL para leer
urlResponse = urllib.pedido.urlopen ('https: // linuxhint.com / python_pause_user_input / ')
# Lectura de la salida del encabezado de respuesta de la URL
print (urlResponse.info ())
# Leer la información del encabezado por separado
print ('Servidor de respuesta =', urlResponse.info () ["Servidor"])
print ('La fecha de respuesta es =', urlResponse.info () ["Fecha"])
print ('El tipo de contenido de respuesta es =', urlResponse.info () ["Content-Type"])

Producción

La siguiente salida aparecerá después de ejecutar el script.

Ejemplo 4: lectura de respuestas de URL línea por línea

Se utiliza una dirección URL local en la siguiente secuencia de comandos. Aquí, un archivo HTML de prueba llamado prueba.html se crea en la ubicación, var /www / html. El contenido de este archivo se lee línea por línea a través del  por círculo. La banda() A continuación, se utiliza el método para eliminar el espacio de ambos lados de cada línea. Puede utilizar cualquier archivo HTML del servidor local para probar el script. El contenido de la prueba.html El archivo utilizado en este ejemplo se muestra a continuación.

prueba.html:



Página de prueba


#!/ usr / bin / env python3
 
# Importar urllib.módulo de solicitud
importar urllib.pedido
 
# Abra una URL local para leer
respuesta = urllib.pedido.urlopen ('http: // localhost / test.html ')
 
# Leer la URL de la respuesta
print ('URL:', respuesta.geturl ())
 
# Leer el texto de respuesta línea por línea
print ("\ nReading contenido:")
para la línea en respuesta:
imprimir (línea.banda())

Producción

La siguiente salida aparecerá después de ejecutar el script.

Ejemplo 5: manejo de excepciones con urllib.error.URLError

La siguiente secuencia de comandos muestra cómo utilizar URLError en Python a través del urllib.error módulo. Cualquier dirección URL se puede tomar como entrada del usuario. Si la dirección no existe, entonces un URLError Se generará una excepción y se imprimirá el motivo del error. Si el valor de la URL tiene un formato no válido, entonces un ValueError se generará y se imprimirá el error personalizado.

#!/ usr / bin / env python3
 
# Importar módulos necesarios
importar urllib.pedido
importar urllib.error
 
# intente bloquear para abrir cualquier URL para leer
intentar:
url = input ("Ingrese cualquier dirección URL:")
respuesta = urllib.pedido.urlopen (url)
imprimir (respuesta.leer())
 
# Detecta el error de URL que se generará al abrir cualquier URL
excepto urllib.error.URLError como e:
print ("Error de URL:", e.razón)
# Detecta el error de URL no válida
excepto ValueError:
print ("Ingresa una dirección URL válida")

Producción

El script se ejecuta tres veces en la siguiente captura de pantalla. En la primera iteración, la dirección URL se proporciona en un formato no válido, generando un ValueError. La dirección URL proporcionada en la segunda iteración no existe, generando un URLError. Se proporciona una dirección URL válida en la tercera iteración, por lo que se imprime el contenido de la URL.

Ejemplo 6: manejo de excepciones con urllib.error.Error HTTP

La siguiente secuencia de comandos muestra cómo utilizar Error HTTP en Python a través del urllib.error módulo. Un HTMLError genera cuando la dirección URL dada no existe.

#!/ usr / bin / env python3
# Importar módulos necesarios
importar urllib.pedido
importar urllib.error
 
# Ingrese cualquier URL válida
url = input ("Ingrese cualquier dirección URL:")
# Enviar solicitud de URL
request = urllib.pedido.Solicitud (url)
 
intentar:
# Intenta abrir la URL
urllib.pedido.urlopen (solicitud)
imprimir ("URL existente")
excepto urllib.error.HTTPError como e:
# Imprime el código de error y el motivo del error
print ("Código de error:% d \ n Motivo del error:% s"% (e.código, e.razón))

Producción

Aquí, el script se ejecuta dos veces. Existe la primera dirección URL tomada como entrada y el módulo ha impreso un mensaje. La segunda dirección URL tomada como entrada no existe y el módulo ha generado la Error HTTP.

Conclusión

Este tutorial discutió muchos usos importantes de la urllib módulo mediante el uso de varios ejemplos para ayudar a los lectores a conocer las funciones de este módulo en Python.

Los mejores juegos de línea de comandos para Linux
La línea de comandos no es solo su mayor aliado cuando usa Linux, también puede ser la fuente de entretenimiento porque puede usarla para jugar muchos...
Las mejores aplicaciones de mapeo de gamepad para Linux
Si te gusta jugar juegos en Linux con un gamepad en lugar de un sistema de entrada de teclado y mouse típico, hay algunas aplicaciones útiles para ti....
Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...