关于python中requests库的简单应用

翻译出处:http://docs.python-requests.org/en/latest/user/quickstart/

是不是很好奇啊?哈哈,想自己操刀实干是吧?既然你迫不及待,现在我们就开始吧。这篇文章将介绍怎么去使用requests库。

首先:(毫无疑问,你要用人家,肯定得先安装啦)你得先安装好requests库。

          安装的链接地址可以看这里:http://docs.python-requests.org/en/latest/user/install/#install

其次:确保你安装的requests库是最新版本。

下面,我们来用一些例子来熟悉一下requests库吧!

一、

首先:引入requests库

>>> import requests

现在,我们尝试用get请求获取github的一个网页,返回的是一个response对象

>>> r = requests.get('https://api.github.com/events')

我们就可以通过response对象r来获取我们需要的所有信息。

requests库提供的API对于各种形式的HTTP请求都是这样显而易见,下面是一个post请求的例子。

>>> r = requests.post('http://httpbin.org/post', data = {'key':'value'})

是不是很酷啊?哈哈。除了get、post请求外,其它类型的HTTP请求又是怎样的呢?其实,你已经猜对了,其它请求也是这样滴简单易用。

>>> r = requests.put('http://httpbin.org/put', data = {'key':'value'})
>>> r = requests.delete('http://httpbin.org/delete')
>>> r = requests.head('http://httpbin.org/get')
>>> r = requests.options('http://httpbin.org/get')

现在你看到的仅仅是requests库能做的一个小开始而已啦!人家用途还有好多呢!

二、

如果我们有一些要求呢?比如说,想在请求链接的时候带一些参数呢?没问题,python都想到了。刚才的基础上,我们来看一下怎么在url中实现传参。

比如说,如果你想在 httpbin.org/get请求中传递这两个参数:key1=value1 和 key2=value2 ,你可以这样用:

>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.get('http://httpbin.org/get', params=payload)

(其实就是你可以把你想传递的参数放在payload这个变量里面,等一下请求的时候放在params属性中带过去就ok了)

我们可以通过打印出来看一下请求的url长啥样子。

>>> print(r.url)
http://httpbin.org/get?key2=value2&key1=value1

(是不是很熟悉啊?和平时我们在项目看到的是一样的)

当然,传递的参数值也可以是list列表的形式,下面演示一下:

>>> payload = {'key1': 'value1', 'key2': ['value2', 'value3']}

>>> r = requests.get('http://httpbin.org/get', params=payload)
>>> print(r.url)
http://httpbin.org/get?key1=value1&key2=value2&key2=value3

三、关于响应内容

我们可以获取到响应的内容,下面还是通过刚才github那个例子做一下介绍。

>>> import requests

>>> r = requests.get('https://api.github.com/events')
>>> r.text
u'[{"repository":{"open_issues":0,"url":"https://github.com/...

requests库会自动的将内容进行编码,requests库可以将大部分的unicode字符集进行编码,是不是很牛逼?

当你使用requests发送一个请求的时候,requests库会根据HTTP的headers预估一下返回的编码格式,当你使用r.text的时候才真正用上这个编码格式。你可以用r.encoding属性来知晓requests库使用的编码,如果想用其它编码格式,还可以将其变成你想要的编码。具体做法如下:

>>> r.encoding
'utf-8'
>>> r.encoding = 'ISO-8859-1'
当你改变了编码格式后,无论什么时候你使用r.text,它都会使用这个编码了。

你可能在某些应用特殊逻辑的场合需要知道内容的编码,举个例子:HTML和XML可以指定自己body中的编码形式。像这种场景,你可以使用r.content来获取编码形式然后r.encoding设置编码,这时,你就需要用r.text来获取正确的编码。

先翻译一部分,作为自己学习的一小部分,改天有时间再接着完成。希望接下来可以做得更好。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值