Import error: No module name urllib2

匿名 (未验证) 提交于 2019-12-03 01:29:01

问题:

Here's my code:

import urllib2.request  response = urllib2.urlopen("http://www.google.com") html = response.read() print(html)

Any help?

回答1:

As stated in the urllib2 documentation:

The urllib2 module has been split across several modules in Python 3 named urllib.request and urllib.error. The 2to3 tool will automatically adapt imports when converting your sources to Python 3.

So you should instead be saying

from urllib.request import urlopen html = urlopen("http://www.google.com/") print(html)

Your current, now-edited code sample is incorrect because you are saying urllib.urlopen("http://www.google.com/") instead of just urlopen("http://www.google.com/").



回答2:

For a script working with Python 2 (tested versions 2.7.3 and 2.6.8) and Python 3 (3.2.3 and 3.3.2+) try:

#! /usr/bin/env python  try:     # For Python 3.0 and later     from urllib.request import urlopen except ImportError:     # Fall back to Python 2's urllib2     from urllib2 import urlopen  html = urlopen("http://www.google.com/") print(html.read())


回答3:

The above didn't work for me in 3.3. Try this instead (YMMV, etc)

import urllib.request url = "http://www.google.com/" request = urllib.request.Request(url) response = urllib.request.urlopen(request) print (response.read().decode('utf-8'))


回答4:

Python 3:

import urllib.request  wp = urllib.request.urlopen("http://google.com") pw = wp.read() print(pw)

Python 2:

import urllib import sys  wp = urllib.urlopen("http://google.com") for line in wp:     sys.stdout.write(line)

While I have tested both the Codes in respective versions.



回答5:

Some tab completions to show the contents of the packages in Python 2 vs Python 3.

In Python 2:

In [1]: import urllib  In [2]: urllib. urllib.ContentTooShortError      urllib.ftpwrapper                urllib.socket                    urllib.test1 urllib.FancyURLopener            urllib.getproxies                urllib.splitattr                 urllib.thishost urllib.MAXFTPCACHE               urllib.getproxies_environment    urllib.splithost                 urllib.time urllib.URLopener                 urllib.i                         urllib.splitnport                urllib.toBytes urllib.addbase                   urllib.localhost                 urllib.splitpasswd               urllib.unquote urllib.addclosehook              urllib.noheaders                 urllib.splitport                 urllib.unquote_plus urllib.addinfo                   urllib.os                        urllib.splitquery                urllib.unwrap urllib.addinfourl                urllib.pathname2url              urllib.splittag                  urllib.url2pathname urllib.always_safe               urllib.proxy_bypass              urllib.splittype                 urllib.urlcleanup urllib.base64                    urllib.proxy_bypass_environment  urllib.splituser                 urllib.urlencode urllib.basejoin                  urllib.quote                     urllib.splitvalue                urllib.urlopen urllib.c                         urllib.quote_plus                urllib.ssl                       urllib.urlretrieve urllib.ftpcache                  urllib.re                        urllib.string                     urllib.ftperrors                 urllib.reporthook                urllib.sys  

In Python 3:

In [2]: import urllib. urllib.error        urllib.parse        urllib.request      urllib.response     urllib.robotparser  In [2]: import urllib.error. urllib.error.ContentTooShortError  urllib.error.HTTPError             urllib.error.URLError  In [2]: import urllib.parse. urllib.parse.parse_qs          urllib.parse.quote_plus        urllib.parse.
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!