AttributeError: 'module' object has no attribute 'urlopen'
我试图使用python下载网站的HTML源代码,但我收到了这个错误。
Traceback (most recent call last):
File
"C:\Users\Sergio.Tapia\Documents
etBeansProjects\DICParser\src\WebDownload.py",
line 3, in
file = urllib.urlopen("http://www.python.org")
AttributeError: 'module' object has no
attribute 'urlopen'
我遵循以下指南:http://www.boddie.org.uk/python/html.html
1 2 3 4 5 6 7 8 | 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) |
我正在使用python 3,谢谢您的帮助!
这在python 2.x中有效。
对于python 3,请查看文档:
1 2 3 4 5 6 | 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) |
与python 2+3兼容的解决方案是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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) |
1 2 3 4 | import urllib.request as ur s = ur.urlopen("http://www.google.com") sl = s.read() print(sl) |
在Pythonv3中,"urllib.request"本身就是一个模块,因此这里不能使用"urllib"。
要在python3中使用"datax=urlib.urlopen(url.read()"(这对python2来说是正确的),您必须更改2个小东西。
1:urllib语句本身(中间添加.request):
1 | dataX = urllib.request.urlopen(url).read() |
2:它前面的import语句(从'import urlib'更改为:
1 | import urllib.request |
它应该在Python中起作用。
1 2 3 4 5 | import urllib.request as ur filehandler = ur.urlopen ('http://www.google.com') for line in filehandler: print(line.strip()) |
python3溶液:
1 2 3 4 5 6 | from urllib.request import urlopen url = 'http://www.python.org' file = urlopen(url) html = file.read() print(html) |
对于python 3,尝试如下操作:
1 2 | import urllib.request urllib.request.urlretrieve('http://crcv.ucf.edu/THUMOS14/UCF101/UCF101/v_YoYo_g19_c02.avi',"video_name.avi") |
它将把视频下载到当前的工作目录
我从这里得到帮助
在python2.x中使用的代码,可以这样使用:
1 2 | from urllib.request import urlopen urlopen(url) |
顺便说一句,建议使用另一个称为请求的模型,它更易于使用,您可以使用pip安装它,并按如下方式使用:
1 2 3 | import requests requests.get(url) requests.post(url) |
我觉得很容易用,我也是初学者……哈哈。