Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用:)
Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。
Requests的文档非常完备,中文文档也相当不错。Requests能完全满足当前网络的需求,支持Python 2.6—3.5,而且能在Python下完美运行。
开源地址:https://github.com/kennethreitz/requests
中文文档 API: http://docs.python-requests.org/zh_CN/latest/index.html
安装方式
利用 pip 安装 或者利用 easy_install 都可以完成安装:
1 2 |
|
基本GET请求(headers参数 和 parmas参数)
1. 最基本的GET请求可以直接用get方法
1 2 3 4 5 6 7 |
|
2. 添加 headers 和 查询参数
如果想添加 headers,可以传入headers参数来增加请求头中的headers信息。如果要将参数放在url中传递,可以利用 params 参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
使用response.text 时,Requests 会基于 HTTP 响应的文本编码自动解码响应内容,大多数 Unicode 字符集都能被无缝地解码。
使用response.content 时,返回的是服务器响应数据的原始二进制字节流,可以用来保存图片等二进制文件。
基本POST请求(data参数)
对于 POST 请求来说,我们一般需要为它增加一些参数。那么最基本的传参方法可以利用 data 这个参数。
相关推荐:《Python视频教程》
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
代理(proxies参数)
如果需要使用代理,你可以通过为任意请求方法提供 proxies 参数来配置单个请求:
1 2 3 4 5 6 7 8 9 |
|
私密代理验证(特定格式) 和 Web客户端验证(auth 参数)
urllib.request 这里的做法比较复杂,requests只需要一步:
1 2 3 4 5 6 7 8 |
|
web客户端验证
如果是Web客户端验证,需要添加 auth = (账户名, 密码)
1 2 3 4 5 6 7 |
|
Cookies 和 Sission
Cookies
如果一个响应中包含了cookie,那么我们可以利用 cookies参数拿到:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Sission
在 requests 里,session对象是一个非常常用的对象,这个对象代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开。
会话能让我们在跨请求时候保持某些参数,比如在同一个 Session 实例发出的所有请求之间保持 cookie 。
实现人人网登录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
处理HTTPS请求SSL证书验证
要想检查某个主机的SSL证书,你可以使用 verify 参数(也可以不写)
1 2 3 4 5 6 7 |
|