为什么urllib.urlopen在python 3中抛出一个异常?

时间:2015-08-22 19:12:51

标签: python

为什么以下python代码会抛出异常?

import urllib

htmlfile=urllib.urlopen("http://google.com")
htmltext=htmlfile.read()
print (htmltext)

回溯

Traceback (most recent call last):
  File "C:/Users/dhfur/Desktop/webcrawl1.py", line 3, in <module>
    htmlfile=urllib.urlopen("http://google.com")
AttributeError: 'module' object has no attribute 'urlopen'

1 个答案:

答案 0 :(得分:2)

因为功能已移至urllib.request module

import urllib.request

htmlfile=urllib.request.urlopen("http://google.com")

很多东西都是从之前的Python 2位置移植到Python 3中的。 Python 2文档通常命名新位置; urllib documentation page也不例外:

  

注意urllib模块已拆分为多个部分,并在Python 3中重命名为urllib.requesturllib.parseurllib.error。将源代码转换为Python 3时, 2to3 工具将自动调整导入。另请注意,Python 3中的urllib.request.urlopen()函数等同于urllib2.urlopen()urllib.urlopen()已被删除。

Python 3 documentation page for urllib命名命名空间下的所有新模块。