【Requests库】{4} ——Requests库主要方法解析

Requests库的7个主要方法:

方法 说明
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

requests.request(method, url, **kwargs)

method:请求方式,对应get/put/post等7种
url:拟获取页面的url链接
**kwargs:控制访问的参数,共13个

  • method:请求方式

r = requests.request(‘GET’, url, **kwargs)
r = requests.request(‘HEAD’, url, **kwargs)
r = requests.request(‘POST’, url, **kwargs)
r = requests.request(‘PUT’, url, **kwargs)
r = requests.request(‘PATCH’, url, **kwargs)
r = requests.request( ‘delete’, url, **kwargs)
r = requests.request(‘OPTIONS’, url, **kwargs)

OPTIONS 事实上是向服务器获取一些服务器跟客户端能够打交道的参数,不与获取的资源直接相关,因此用得比较少。

  • **kwargs:控制访问的参数,均为可选项

**开头表示可选的,要用命名方法来调入参数

params:字典或字节序列,作为参数增加到url中
【Requests库】{4} ——Requests库主要方法解析

通过这样的一个参数,我们可以把一些键值对增加到 URL 中,使得 URL 再去访问时,不止访问这个资源,而同时带入了一些参数,服务器可以接受这些参数,并根据这些参数筛选部分资源返回回来。

data:字典、字节序列或文件对象,作为Request的内容

【Requests库】{4} ——Requests库主要方法解析

不存到URL链接里,而是URL链接对应的位置那里。

json:JSON格式的数据,作为Request的内容
【Requests库】{4} ——Requests库主要方法解析

headers:字典,HTTP定制头
【Requests库】{4} ——Requests库主要方法解析

也就是说我们可以模拟任何我们想模拟的浏览器向服务器发起访问,而这种模拟浏览器的方法就是在headers字段中来实现。

cookies:字典或CookieJar,Request中的cookie

auth:元组,支持HTTP认证功能

这两个都是requests的高级功能

files:字典类型,传输文件
【Requests库】{4} ——Requests库主要方法解析

timeout:设定超时时间,秒为单位
【Requests库】{4} ——Requests库主要方法解析

proxies:字典类型,设定访问代理服务器,可以增加登录认证

【Requests库】{4} ——Requests库主要方法解析

防止逆追踪

allow redirects:True/False,默认为 True,重定向开关

stream:True/False,默认为 True,获取内容立即下载开关

verify:True/False,默认为 True,认证SSL证书开关

cert:本地 SSL证书路径

【Requests库】{4} ——Requests库主要方法解析

data、json、headers要灵活掌握,访问网页时适当使用。


requests.get(url, params=None, **kwargs)

url:拟获取页面的 urI链接
params:url中的额外参数,字典或字节流格式,可选
kwargs:12个控制访问的参数

最通常的方法是通过 r=request.get(url) 构造一个向服务器请求资源的 url对象,这个对象是 Request库内部生成的:
【Requests库】{4} ——Requests库主要方法解析

r 返回的是一个包含服务器资源的 Response对象,包含从服务器返回的所有的相关资源。

url 是通过 http协议存取资源的一个路径,它就像我们电脑里面的一个文件的路径一样


requests.head(url, **kwargs)

url:拟获取页面的urI链接
**kwargs:13个控制访问的参数


requests.post(url, data=None, json=None, **kwargs)

url:拟更新页面的url链接
data:字典、字节序列或文件,Request的内容
json:JSON格式的数据,Request的内容
**kwargs:11个控制访问的参数


requests.put(url, data=None, **kwargs)

url:拟更新页面的urI链接
data:字典、字节序列或文件,Request的内容
**kwargs:12个控制访问的参数


requests.patch(url, data=None, **kwargs)

url:拟更新页面的url链接
data:字典、字节序列或文件, Request的内容
**kwargs:12个控制访问的参数


requests.delete(url, **kwargs)

url:拟删除页面的url链接
**kwargs:13个控制访问的参数


get方法是最常用的方法,因为在 HTTP协议中,向某一个 URL 去提交资源的功能,在服务器上是严格受控的,这里边有很大的安全问题。如果某一个 URL 是允许任何用户无限制地向上传输相关资源的,那么就会出现很多问题。
比如说,我们可以用大量的垃圾信息,去使得服务器的资源消耗完,甚至我们可以去传输一些不可控的、或者恶意的内容到某一个 URL 上,这都是对网络空间不负责任的表现。

因此,在使用requests库的时候,最常用get方法,也就是说我们通过get方法来爬取一些内容,并且部分地向服务器提交一些内容。而对于某些特别大的URL链接,用head获取资源概要。重点掌握 get 和 head。

服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。
服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。
服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。
根据服务器所提供的服务,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。
服务器作为电子设备,其内部的结构十分的复杂,但与普通的计算机内部结构相差不大,如:cpu、硬盘、内存,系统、系统总线等。


网络连接有风险,异常处理很重要

因此要用 try、except 的方式来保证网络连接的异常能够被有效处理。

核心的一行代码:

r.raise_for_status() # Response对象的raise_for_status()函数

它的作用是:如果返回的对象的状态码不是200,它将产生一次异常,所以 except 能够捕获到所有网络连接错误时的异常。

上一篇:day 10


下一篇:python函数