Python urllib.request 模块的使用详解
Python 的 urllib.request 模块是 Python 自带的 HTTP 请求库,可以用于发送 HTTP 请求。本文将详细介绍 urllib.request 模块的使用方法。
发送 GET 请求
使用 urllib.request 模块发送 GET 请求非常简单,只需要调用 urlopen() 方法即可。以下是一个简单的 GET 请求示例:
from urllib import request
url = 'http://www.example.com'
response = request.urlopen(url)
print(response.read().decode('utf-8'))
在上面的示例中,我们使用 urlopen() 方法发送了一个 GET 请求,并打印了响应的文本内容。
发送 POST 请求
使用 urllib.request 模块发送 POST 请求需要使用 Request 对象。以下是一个简单的 POST 请求示例:
from urllib import request, parse
url = 'http://www.example.com'
data = {'username': 'test', 'password': '123456'}
data = parse.urlencode(data).encode('utf-8')
req = request.Request(url, data=data)
response = request.urlopen(req)
print(response.read().decode('utf-8'))
在上面的示例中,我们使用 Request 对象发送了一个 POST 请求,并传递了请求参数 data,然后打印了响应的文本内容。
设置请求头
有些网站会根据请求头来判断请求是否来自机器人,因此我们需要设置请求头来模拟浏览器发送请求。以下是一个设置请求头的示例:
from urllib import request
url = 'http://www.example.com'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
req = request.Request(url, headers=headers)
response = request.urlopen(req)
print(response.read().decode('utf-8'))
在上面的示例中,我们设置了 User-Agent 请求头,模拟了 Chrome 浏览器发送请求。
处理异常
在发送 HTTP 请求时,可能会出现各种异常,例如网络连接异常、服务器返回异常等。因此,我们需要对异常进行处理。以下是一个处理异常的示例:
from urllib import request, error
url = 'http://www.example.com'
try:
response = request.urlopen(url)
print(response.read().decode('utf-8'))
except error.URLError as e:
print(e.reason)
在上面的示例中,我们使用 try-except 语句捕获了 URLError 异常,并打印了异常信息。
以上是 Python urllib.request 模块的使用详解,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python urllib.request模块的使用详解 - Python技术站