【python床头书系列】python Requests快速入门

python Requests快速入门

源自专栏《Python床头书、图计算、ML目录(持续更新)


如果您迫不及待地想要开始使用Requests,这个页面将为您介绍如何入门。首先确保:

  • Requests已安装
  • Requests已更新到最新版本

让我们从一些简单的示例开始。

发送请求

使用Requests发送请求非常简单。

首先导入Requests模块:

import requests

现在,让我们尝试获取一个网页。在本例中,让我们获取GitHub的公共时间线:

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

现在,我们有一个名为r的响应对象。我们可以从这个对象中获取我们需要的所有信息。

Requests的简单API意味着所有形式的HTTP请求都很明显。例如,这是如何进行HTTP POST请求的示例:

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

很好,对吧?那其他的HTTP请求类型呢:PUT、DELETE、HEAD和OPTIONS?它们同样简单:

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

这些很好,但这也仅仅是Requests能够做到的开始。

在URL中传递参数

通常,您希望在URL的查询字符串中发送一些数据。如果您手动构造URL,这些数据将作为键/值对出现在问号后面,例如httpbin.org/get?key=val。Requests允许您将这些参数作为字符串字典提供,使用params关键字参数。例如,如果您希望将key1=value1和key2=value2传递给httpbin.org/get,您将使用以下代码:

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

您可以看到URL已经正确编码:

https://httpbin.org/get?key2=value2&key1=value1

请注意,任何值为None的字典键将不会添加到URL的查询字符串中。

您还可以将列表作为值传递:

payload = {
   'key1': 'value1', 'key2': ['value2', 'value3']}
r = requests.get('https://httpbin.org/get', params=payload)
print(r.url)

响应内容

我们可以读取服务器响应的内容。再次考虑GitHub的时间线:

import requests

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

Requests将自动解码来自服务器的内容。大多数Unicode字符集都可以无缝解码。

在发出请求时,Requests会根据HTTP标头对响应的编码进行合理猜测。当您访问r.text时,Requests使用的是由r.encoding猜测的文本编码。您可以查看Requests使用的编码,并使用r.encoding属性进行更改:

r.encoding
'utf-8'
r.encoding = 'ISO-8859-1'

如果更改编码,Requests将在调用r.text时使用r.encoding的新值。在任何需要应用特殊逻辑来确定内容编码的情况下,

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigDataMLApplication

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值