AttributeError: module 'urllib' has no attribute 'urlopen'

使用py3的urllib.urlopen方法时报错:

PS C:\Users\jiangcheng\Documents\Python Scripts> python
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> rawdata = urllib.urlopen('http://www.jd.com/').read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'urllib' has no attribute 'urlopen'

靠谱解决:import urllib.request

PS C:\Users\jiangcheng\Documents\Python Scripts> python
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> rawdata = urllib.urlopen('http://www.jd.com/').read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'urllib' has no attribute 'urlopen'
>>> rawdata = urllib.request.urlopen('http://www.jd.com/').read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'urllib' has no attribute 'request'
>>> import urllib.request
>>> rawdata = request.urlopen('http://www.jd.com/').read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'request' is not defined
>>> rawdata = urllib.request.urlopen('http://www.jd.com/').read()

完整代码:

PS C:\Users\jiangcheng\Documents\Python Scripts> python
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> rawdata = urllib.urlopen('http://www.jd.com/').read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'urllib' has no attribute 'urlopen'
>>> rawdata = urllib.request.urlopen('http://www.jd.com/').read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'urllib' has no attribute 'request'
>>> import urllib.request
>>> rawdata = request.urlopen('http://www.jd.com/').read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'request' is not defined
>>> rawdata = urllib.request.urlopen('http://www.jd.com/').read()
>>> import chardet
>>> chardet.detect(rawdata)
{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}

猜你喜欢

转载自blog.csdn.net/sky_jiangcheng/article/details/80982741