AttributeError: el objeto ‘módulo’ no tiene atributo ‘urlopen’

Estoy intentando usar Python para descargar el código fuente HTML de un sitio web, pero recibo este error.

Rastreo (llamadas recientes más última):
Archivo “C: \ Users \ Sergio.Tapia \ Documents \ NetBeansProjects \ DICParser \ src \ WebDownload.py”, línea 3, en el archivo = urllib.urlopen (” http://www.python.org “) ‘objeto no tiene atributo’ urlopen ‘

Estoy siguiendo la guía aquí: http://www.boddie.org.uk/python/HTML.html

import urllib file = urllib.urlopen("http://www.python.org") s = file.read() f.close() #I'm guessing this would output the html source code? print(s) 

Estoy usando Python 3, gracias por la ayuda!

Esto funciona en Python 2.x.

Para Python 3 mira aquí:

http://docs.python.org/py3k/library/urllib.request.html?highlight=urllib#urllib.request.urlopen

 import urllib.request with urllib.request.urlopen("http://www.python.org") as url: s = url.read() #I'm guessing this would output the html source code? print(s) 

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

 import sys if sys.version_info[0] == 3: from urllib.request import urlopen 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 urlopen # Your code where you can use urlopen with urlopen("http://www.python.org") as url: s = url.read() print(s) 
 import urllib.request as ur s = ur.urlopen("http://www.google.com") sl = s.read() print(sl) 

En Python v3, “urllib.request” es un módulo en sí mismo, por lo tanto, “urllib” no se puede usar aquí.

Para obtener ‘ dataX = urllib.urlopen (url) .read () ‘ trabajando en python 3 (esto hubiera sido correcto para python 2 ) solo debes cambiar 2 cosas pequeñas.

1: la propia statement urllib (agregue la .request en el medio):

 dataX = urllib.request.urlopen(url).read() 

2: la statement de importación que lo precede (cambie de ‘importar urlib’ a:

 import urllib.request 

Y debería funcionar en python3 🙂

 import urllib.request as ur filehandler = ur.urlopen ('http://www.google.com') for line in filehandler: print(line.strip()) 

Para Python 3, intente algo como esto:

 import urllib.request urllib.request.urlretrieve('http://crcv.ucf.edu/THUMOS14/UCF101/UCF101/v_YoYo_g19_c02.avi', "video_name.avi") 

Se descargará el video al directorio de trabajo actual.

Tengo ayuda de AQUI

Solución para python3:

 from urllib.request import urlopen url = 'http://www.python.org' file = urlopen(url) html = file.read() print(html) 

tu código utilizado en python2.x, puedes usar así:

 from urllib.request import urlopen urlopen(url) 

por cierto, sugerir que otro modelo llamado solicitudes es más fácil de usar, puedes usar pip instalarlo y usar así:

 import requests requests.get(url) requests.post(url) 

Pensé que es fácil de usar, yo también soy principiante … hahah