AttributeError: Módulo Urllib no tiene solicitud de atributo

Zeeshan Afridi 21 junio 2023
  1. el AttributeError: module 'urllib' no tiene atributo 'request' en Python
  2. Solucione el AttributeError: el módulo 'urllib' no tiene atributo 'request' en Python
AttributeError: Módulo Urllib no tiene solicitud de atributo

Dado que urllib.request en Python es un módulo independiente, urllib no se puede implementar en esta situación. Si un módulo tiene varios submódulos, la carga individual de cada uno puede ser costosa y generar problemas con elementos no relacionados con su programa.

Python almacenará en caché la importación, ya que el módulo que está utilizando se importa para usarlo por sí mismo, lo que lo convierte en parte del objeto.

el AttributeError: module 'urllib' no tiene atributo 'request' en Python

Este error es una excepción común en Python cuando intenta abrir enlaces de URL importando bibliotecas de URL. Para entender este error, tomemos un ejemplo.

Ejemplo de código:

import urllib

request = urllib.request.Request("http://www.python.org")

Producción :

AttributeError: module 'urllib' has no attribute 'request'

Ocasionalmente, puede importar el módulo que necesita cuando usa paquetes como este. El módulo urllib no tendrá que cargar todo solo porque solo necesita una pequeña parte de cualquier url.

La url de importación está accediendo a toda la biblioteca; es por eso que está mostrando un error.

Solucione el AttributeError: el módulo 'urllib' no tiene atributo 'request' en Python

Puede importar como importar urllib.request como urllib o al revés para usar importar urllib.request urllib.request.urlopen('http://www.python.org',timeout=1).

import urllib.request

with urllib.request.urlopen("http://www.python.org") as url:
    s = url.read()
    print(s)

Producción :

<!doctype html>
<head>
    <meta charset="utf-8">
'
'
'
'
from urllib.request import Request, urlopen


def get_page_content(url, head):

    req = Request(url, headers=head)
    return urlopen(req)


url = "https://example.com"
head = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    "Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.3",
    "Accept-Encoding": "none",
    "Accept-Language": "en-US,en;q=0.8",
    "Connection": "keep-alive",
    "refere": "https://example.com",
    "cookie": """your cookie value ( you can get that from your web page) """,
}

data = get_page_content(url, head).read()
print(data)

Producción :

<!doctype html>\n<html>\n<head>\n    <title>Example Domain</title>\n\n    <meta charset="utf-8" />\n
'
'
'
href="https://www.iana.org/domains/example">More information...</a></p>\n</div>\n</body>\n</html>\n'

En lugar de importar completamente el módulo urllib y luego intentar acceder a su solicitud de submódulo como un atributo, debe importar la solicitud de submódulo desde el módulo principal urllib.

La importación de urllib print(urllib.request) no funciona, pero from urllib import request print(request) y import urllib.request tienen éxito.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Artículo relacionado - Python Error