python 的网络请求库 requests 简单使用
简介
requests 库是 python 中一个最常用的网络请求库,在爬虫时使用甚多。它请求的方式简单,只需简单地调用其内置地 get、post 等方法即可发送请求。本文章从面向对象的角度来介绍其使用方法以及源码解析。
requests 库使用了 restful 风格设计的 api,即 get,post,put,patch,delete 五种 HTTP 方法,对应了 CRUD 操作。
Requests 请求对象
在 requests 中,这几个 api 入参后会构造一个 Requests 对象:
method:请求方法,默认get,可选择的有:get,post,put,patch,delete,head,options,例如:
python
1 | import requests |
这种写法有些冗余,所以一般不使用 request 方法,而是直接使用 requests.get,requests.post,requests.put,requests.patch,requests.delete,requests.head,requests.options,例如:
python
1 | import requests |
url:请求地址,必选,例如 https://api.bimg.ccheaders:请求头,例如:
python
1 | import requests |
files:文件列表,上传文件,详情params:请求参数,在get方法中,可以用?key=value来作为请求参数,也可使用params={'key':'value}的形式来请求参数,例如:
python
1 | import requests |
data:请求参数,在post等方法中,如果是表单请求(即请求内容是application/x-www-form-urlencoded),可使用data={'key':'value'}的形式发送请求参数,例如:
python
1 | import requests |
json:请求参数,在post等方法中,如果是发送json数据(即请求内容是application/json),可使用json={'key':'value'}的形式发送请求参数,例如:
python
1 | import requests |
cookies:cookie,保存服务器的一些数据,发送请求时携带在请求头上,headers={'cookie':'xxxx'},或者用以下方法也可携带 cookie:
python
1 | import requests |
auth:认证,等同于在请求头加上{'Authorization':'xxxxxxxxxxx'},不常用hooks:回调方法
requests.get(url, params=None, **kwargs) 也设置了一些参数来辅助构造 Requests 对象:
timeout超时时间 (秒),可整数 / 浮点数,如果请求在规定时间内还未响应,则抛出一个 exception,也可传入一个包含两个简单浮点数的元组,用来分别设置请求超时时间和读取超时时间,例如:
python
1 | import requests |
stream,是否以流的方式传输,默认情况下stream=False,当请求到服务器资源后,它会立即开始下载文件并存放到内存当中,如果文件过大就会导致内存不足的情况,如果以流的方式传输,则请求会先下载响应头,数据内容还未下载,例如:
python
1 | import requests |
proxies,设置代理verify,是否验证请求地址的证书,默认Truecert,证书,如果是String类型,表示.pem 文件路径,如果是Tuple类型,表示('cert', 'key')
Response 响应对象
在 requests 中,这几个 api 的返回值是一个 Response 对象:
status_code,状态码,例如:
python
1 | import requests |
headers,响应头,例如:
python
1 | import requests |
url,请求地址encoding,编码cookies,cooike
requests 也设置了一些参数来辅助构造 Response 对象:
text,返回响应的内容,unicode 类型数据,例如:
python
1 | import requests |
content,返回响应的内容,以字节为单位,例如:
python
1 | import requests |
json(),返回响应的 JSON 对象 ,例如:
python
1 | import requests |
ok,检查 “status_code” 的值,如果小于 400,则返回 True,如果不小于 400,则返回 False,例如:
python
1 | import requests |
源码解析
待完善……
参考文章
https://realpython.com/python-requests/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 枫叶!






























































































































































































































































































































































































































