00x0 前言
最近更新了python版本,准备写个爬虫,意外的发现urllib库中属性不存在urlopen,于是各种google,然后总结一下给出解决方案
00x1 问题的出现
AttributeError: 'module' object has no attribute 'urlopen'
00x2 问题的解决途径
我们先来看下官方文档的解释:
a new urllib package was created. It consists of code from
urllib, urllib2, urlparse, and robotparser. The old
modules have all been removed. The new package has five submodules:
urllib.parse, urllib.request, urllib.response,
urllib.error, and urllib.robotparser. The
urllib.request.urlopen() function uses the url opener from
urllib2. (Note that the unittests have not been renamed for the
beta, but they will be renamed in the future.)也就是说官方3.0版本已经把urllib2,urlparse等五个模块都并入了urllib中,也就是整合了。
00x3
正确的使用方法import urllib.request
url="http://www.baidu.com"
get=urllib.request.urlopen(url).read()
print(get)
结果示意图:
import urllib.request
url="http://www.baidu.com"
get=urllib.request.urlopen(url).read()
print(get)
其实也是可以换个utf-8的编码让读取出来的源码更正确的,但这已经是番外的不再提了。
本文解决了Python 3.x版本中使用urllib库遇到的AttributeError问题,介绍了urllib2等模块被整合到urllib的过程,并给出了正确的urllib.request.urlopen()函数使用示例。
1149





