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 objetoRequest
cuyo método deread
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")