关于python:AttributeError:’module’对象没有属性’urlopen’

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)

我觉得很容易用,我也是初学者……哈哈。