httperror has forbidden error attribute python-3.x urllib attributeerror

python-3.x - forbidden - module urllib has no attribute urlopen python 3



AttributeError: el objeto ''module'' no tiene atributo ''urlretrieve'' (3)

Al usar Python 3, ya no hay ningún módulo urllib. Se ha dividido en varios módulos.

Esto sería equivalente a urlretrieve:

import urllib.request data = urllib.request.urlretrieve("http://...")

urlretrieve se comporta exactamente de la misma manera que en Python 2.x, por lo que funcionará perfectamente.

Básicamente:

  • urlretrieve guarda el archivo en un archivo temporal y devuelve una tupla (filename, headers)
  • urlopen devuelve un objeto Request cuyo método de read devuelve una cadena de bytes que contiene el contenido del archivo

Estoy intentando escribir un programa que descargará mp3 de un sitio web y luego los uniré, pero cada vez que intento descargar los archivos, aparece este error:

Traceback (most recent call last): File "/home/tesla/PycharmProjects/OldSpice/Voicemail.py", line 214, in <module> main() File "/home/tesla/PycharmProjects/OldSpice/Voicemail.py", line 209, in main getMp3s() File "/home/tesla/PycharmProjects/OldSpice/Voicemail.py", line 134, in getMp3s raw_mp3.add = urllib.urlretrieve("http://www-scf.usc.edu/~chiso/oldspice/m-b1-hello.mp3") AttributeError: ''module'' object has no attribute ''urlretrieve''

La línea que está causando este problema es

raw_mp3.add = urllib.urlretrieve("http://www-scf.usc.edu/~chiso/oldspice/m-b1-hello.mp3")


Supongamos que tiene las siguientes líneas de código

MyUrl = "www.google.com" #Your url goes here urllib.urlretrieve(MyUrl)

Si está recibiendo el siguiente mensaje de error

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

Luego, debería intentar seguir el código para solucionar el problema:

import urllib.request MyUrl = "www.google.com" #Your url goes here urllib.request.urlretrieve(MyUrl)


Una solución compatible con Python 2 + 3 es:

import sys if sys.version_info[0] >= 3: from urllib.request import urlretrieve else: # Not Python 3 - today, it is most likely to be Python 2 # But note that this might need an update when Python 4 # might be around one day from urllib import urlretrieve # Get file from URL like this: urlretrieve("http://www-scf.usc.edu/~chiso/oldspice/m-b1-hello.mp3")