这是我的代码:

import urllib2.request

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

任何帮助吗?


当前回答

上面的方法在3.3中对我不起作用。试试这个(YMMV,等等)

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

其他回答

注意:urllib2在Python 3中不再可用

您可以尝试下面的代码。

import urllib.request 
res = urllib.request.urlopen('url')
output = res.read()
print(output)

你可以得到更多关于urllib的信息。从此链接请求。

使用:urllib3

import urllib3
http = urllib3.PoolManager()
r = http.request('GET', 'url')
print(r.status)
print( r.headers)
print(r.data)

如果您想了解urllib3的更多详细信息。点击这个链接。

在python 3中,获取文本输出:

import io
import urllib.request

response = urllib.request.urlopen("http://google.com")
text = io.TextIOWrapper(response)

正如urllib2文档中所述:

在Python 3中,urllib2模块被拆分为几个名为urllib的模块。请求和urllib.error。2to3工具将在将源代码转换为Python 3时自动适应导入。

所以你应该说

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

您现在编辑的代码示例是不正确的,因为您说的是urllib.urlopen(“http://www.google.com/”)而不是urlopen(“http://www.google.com/”)。

上面的方法在3.3中对我不起作用。试试这个(YMMV,等等)

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

对于使用Python 2(测试版本2.7.3和2.6.8)和Python 3(3.2.3和3.3.2+)的脚本,请尝试:

#! /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())