Python利用urllib和urllib2访问HTTP的GET/POST详解
Python中的urllib和urllib2模块提供了访问HTTP的GET和POST方法。本文将详细讲解如何使用这两个模块进行HTTP请求。
urllib模块
urllib模块提供了访问HTTP的基本功能,包括GET和POST方法。以下是使用urllib模块进行HTTP请求的示例:
GET方法
import urllib.request
response = urllib.request.urlopen('http://www.example.com/')
html = response.read()
print(html)
在上面的代码中,我们使用urlopen()函数发送GET请求,并使用read()函数读取响应内容。
POST方法
import urllib.parse
import urllib.request
url = 'http://www.example.com/login'
values = {'username': 'john', 'password': 'doe'}
data = urllib.parse.urlencode(values).encode('utf-8')
req = urllib.request.Request(url, data)
response = urllib.request.urlopen(req)
html = response.read()
print(html)
在上面的代码中,我们使用urlencode()函数将POST数据编码为URL格式,并使用encode()函数将其转换为字节流。然后,我们使用Request()函数创建一个请求对象,并使用urlopen()函数发送POST请求。
urllib2模块
urllib2模块是urllib模块的增强版,提供了更多的HTTP请求功能。以下是使用urllib2模块进行HTTP请求的示例:
GET方法
import urllib2
response = urllib2.urlopen('http://www.example.com/')
html = response.read()
print(html)
在上面的代码中,我们使用urlopen()函数发送GET请求,并使用read()函数读取响应内容。
POST方法
import urllib
import urllib2
url = 'http://www.example.com/login'
values = {'username': 'john', 'password': 'doe'}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
html = response.read()
print(html)
在上面的代码中,我们使用urlencode()函数将POST数据编码为URL格式。然后,我们使用Request()函数创建一个请求对象,并使用urlopen()函数发送POST请求。
示例1:使用urllib模块发送GET请求
以下是一个使用urllib模块发送GET请求的示例:
import urllib.request
response = urllib.request.urlopen('http://www.example.com/')
html = response.read()
print(html)
在上面的代码中,我们使用urlopen()函数发送GET请求,并使用read()函数读取响应内容。
示例2:使用urllib2模块发送POST请求
以下是一个使用urllib2模块发送POST请求的示例:
import urllib
import urllib2
url = 'http://www.example.com/login'
values = {'username': 'john', 'password': 'doe'}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
html = response.read()
print(html)
在上面的代码中,我们使用urlencode()函数将POST数据编码为URL格式。然后,我们使用Request()函数创建一个请求对象,并使用urlopen()函数发送POST请求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python利用urllib和urllib2访问http的GET/POST详解 - Python技术站