requests库,是一个python三方库,是基于urlib3编写.
同时,requests库也是当前python发送HTTP请求的主流库!无论是自动化框架,还是爬虫!以及接口请求!都会使用到的三方库
首先,requests库核心就是请求,所以我们以GET请求为例
GET请求
# encoding: utf-8
"""
@author:辉辉
@email: 372148872@qq.com
@Wechat: 不要静音
@time: 2020/12/25 13:58
"""
import requests
url = 'http://www.baidu.com'
resp = requests.get(url)
print(resp)
GET形式的请求方法,是将数据以querystring方式,放置于url之中,发送给服务器,这种请求的优点在于,请求速度快,服务器响应快! 缺点也很明显,发送数据量小,数据暴漏在url当中,如果查询数据sql不标准,存在sql注入的风险,所以在编写sql时,尽量不要使用格式化拼接,避免产生sql漏洞
我们以GET请求为例子,来解释所有的response响应涵数
# print(resp.status_code) #返回code码
# print(resp.headers) # 返回请求头部信息
# print(resp.url) # 返回请求url
# print(resp.request) # 返回请求方法
# print(resp.content) # 返回byte格式响应
# print(resp.text) #返回响应文本
# print(resp.cookies) #返回cookies
# print(resp.encoding) # 通常用于响应体的编码格式
# print(resp.apparent_encoding) # 返回的是ascii编码
# print(resp.elapsed) # 返回响应时间
# print(resp.history) #返回所有请求的响应以列表形式返回
# print(resp.is_permanent_redirect) # 判断是否为永久重定向
# print(resp.is_redirect) # 判断是否为临时重定向
# print(resp.iter_content())
"""遍历响应的数据
如果将参数stream=True,那么将避免内容立即读入内存,并且作为返回,可以进行编码设置,
另一个默认值chunk_size的参数类型,必须为int或者None,
如果decode_unicode设置为True,
则该参数将自动把响应进行当前可用的编码方式进行编码
"""
# print(resp.iter_lines()) # 遍历响应数据,每次遍历一行,其余同上
# print(resp.links) #返回一个字典,请求头里的url
# print(resp.next) # 为重定向链中的下一个请求返回一个preparerequest(准备请求,如果有的话)
# print(resp.ok) # 检查服务器返回状态码,如果小于400则返回true否则返回false
# print(resp.raise_for_status()) # 判断响应,如果返回的状态码大于400则抛出异常
# print(resp.raw) # 返回的是以Urlib发起的请求返回对象,通常返回的是HTTP响应对象
# print(resp.close())# 关闭返回的响应对象
# print(resp.reason) # 响应HTTP状态的文本原因,例如:“未找到”或“好。 如果打印使用,则会打印无法处理的实体或错误
以上,则是Response响应对象包含的所有响应方法