requests库是一个广泛使用的HTTP库,用于发送HTTP请求和处理响应。
以下是requests库中一些主要类和方法的详细介绍:
requests库主要类和方法
类:
requests.models.Response:
status_code: 响应状态码。
text: 以Unicode形式返回响应内容。
content: 以字节形式返回响应内容。
headers: 响应头信息。
json(): 将响应内容解析为JSON格式。
方法:
requests.request(method, url, **kwargs):发送HTTP请求,并返回Response对象。可以指定请求方法、URL,以及其他参数。
requests.get(url, params=None, **kwargs):发送GET请求,并返回Response对象。可以指定URL、查询参数等。
requests.post(url, data=None, json=None, **kwargs):发送POST请求,并返回Response对象。可以指定URL、表单数据、JSON数据等。
requests.put(url, data=None, **kwargs):发送PUT请求,并返回Response对象。
requests.delete(url, **kwargs):发送DELETE请求,并返回Response对象。
requests.head(url, **kwargs):发送HEAD请求,并返回Response对象。
requests.options(url, **kwargs):发送OPTIONS请求,并返回Response对象。
requests.Session():创建一个会话对象,可以跨多个请求保持会话状态,共享Cookie等信息。
requests.exceptions.RequestException:所有requests库的异常的基类。
在requests
库中,Response
对象的content
属性以字节形式返回响应内容。这个属性返回的是原始的字节数据,通常用于处理非文本内容(如图片、视频等)的响应。
在requests
库中,Response
对象的text
属性以Unicode形式返回响应内容,以便进行文本处理和解析。
import requests
# 发送GET请求
response = requests.get('https://www.example.***')
# 获取响应内容的Unicode形式
response_text = response.text
# 打印响应内容的前100个字符
print(response_text)
---------------------------------------
urllib3库提供了许多类和方法,用于发送HTTP请求、管理连接池、处理代理、证书验证等功能。
以下是urllib3库中最常用的类及其方法的简要介绍:
urllib3.PoolManager类
request(method, url, fields=None, **urlopen_kw):发送HTTP请求并返回HTTPResponse对象。可以指定请求方法、URL,以及其他参数。
urlopen(method, url, body=None, headers=None, retries=3, redirect=True, assert_same_host=True, timeout=Timeout.DEFAULT_TIMEOUT, pool_timeout=None, release_conn=None, chunked=False, body_pos=0, fields=None, preload_content=True, decode_content=True, retries=Retry.DEFAULT, **response_kw):发送HTTP请求并返回HTTPResponse对象。与request方法类似,但提供更多的参数选项。
urllib3.HTTPResponse类
status:获取响应状态码。
data:获取响应的原始字节流数据。response.data.decode('utf-8') # 将原始字节流解码为字符串
headers:获取响应头信息。
连接管理
urllib3.connection_from_url(url, **kw):根据URL创建一个连接对象。
urllib3.make_headers(**headers):创建HTTP请求头。
urllib3.disable_warnings(category=InsecureRequestWarning):禁用特定的警告类别。
异常类
urllib3.exceptions.MaxRetryError:超过最大重试次数时引发的异常。
urllib3.exceptions.SSLError:SSL证书验证失败时引发的异常。
import urllib3
# 创建一个PoolManager对象
http = urllib3.PoolManager()
# 发送GET请求并获取响应对象
response = http.request('GET', 'https://www.example.***')
# 检查响应状态码
if response.status == 200:
# 读取并打印网页内容
html_content = response.data.decode('utf-8')
print(html_content)
else:
print("Failed to fetch the webpage. Status code:", response.status)
在urllib3中,使用data属性来获取响应的原始字节流数据。可以将这些数据解码为字符串,如UTF-8编码,以获取文本内容。
import urllib3
import json
http = urllib3.PoolManager()
data = {'attribute': 'value'}
encoded_data = json.dumps(data).encode('utf-8')
response = http.request(
'POST',
'http://httpbin.org/post',
body=encoded_data,
headers={'Content-Type': 'application/json'}
)
print(response.status)
print(response.data.decode('utf-8'))