[A] Requests库的安装
Pycharm中自行安装第三方库
[B] Requests库的七个主要方法
方法 | 说明 |
requests.request() | 构造一个请求,支持一下个方法的基础方法 |
requests.get() | 获取HTML网页的主要方法,对应于HTTP的get方法 |
requests.head() | 获取HTML网页的头信息方法,对应于HTTP的head方法 |
requests.post() | 向HTML网页提价交post请求,对应于HTTP的post方法 |
requests.put() | 向HTML网页提价交put请求,对应于HTTP的put方法 |
requests.patch() | 向HTML网页提价交局部修改请求,对应于HTTP的patch方法 |
requests.delete() | 向HTML网页提价交删除请求,对应于HTTP的delete方法 |
实际上,request方法为Request库的基本方法,其他六种方法内部都是通过调用request方法来发送请求的。
[C] requests的get()方法
语法:
r = requests.get(url, params = None, **kwargs)
参数:
url:必填,拟获取页面的url链接
params:可选,url中的额外参数,字典获字节流格式
**kwargs:可选,12个控制访问的参数
返回值:一个包含服务器资源的 Response 对象
说明:
1. requests.get() 方法创建了一个向服务器发送请求的Request对象
2. 返回值 r 为一个包含服务器资源的 Response 对象,里面也包含请求的相关信息
Response对象的属性
属性 | 说明 |
r.status_code | HTTP请求的返回状态,200表示连接成功,404表示连接失败 |
r.text | HTTP响应内容的字符串形式,即url对应的页面内容 |
r.encoding | 从HTTP header 中猜测的响应内容的编码形式 |
r.apparent_encoding | 从内容中分析出来的响应内容的编码方式(备选编码方式) |
r.content | HTTP响应内容的二进制形式 |
r.encoding 和 r.apparent_encoding 的比较:
网络上的资源都是经过编码之后存储在服务器中的,有的服务器对编码形式有格式要求,有的没有;
有格式要求的,会在其 header 信息的 charset 属性中赋值,没有格式要求的则 charset 属性未被赋值
1. r.encoding 是从HTTP的header中直接读取对应的 charset 的值,获取编码格式要求,如果 charset 中没有值,则编码默认为ISO-8859-1
2. r.apparent_encoding 是根据返回资源的内容中分析,确定该资源的编码形式
实际上,r.apparent_encoding 中存储的编码格式要相比于r.encoding 更准确