python requests用法
Python的Requests库是一个HTTP库,用于发送HTTP/1.1请求非常简单易用。它为人们提供了一个简洁的API,来处理各种HTTP请求,包括GET、POST、PUT、DELETE、HEAD以及OPTIONS。而Requests库的设计初衷,就是为了让它易于使用。 我们要了解,要使用Requests库,需要确保它已经被安装到我们的Python环境中。通常可以通过pip安装: ``` pip install requests ``` 安装完成后,便可以开始使用。我们首先需要导入Requests库。这可以通过简单的import语句完成: ``` import requests ``` 发送一个GET请求来获取某个网页的内容是很容易的。例如,我们可以获取Github的公共时间线: ``` r = requests.get('***') ``` 在上面的代码中,我们通过requests.get方法发起一个GET请求。它返回一个Response对象,该对象中包含了服务器响应的内容。我们可以通过访问Response对象的属性来获取我们感兴趣的数据。 发送POST请求同样简单,如下所示: ``` r = requests.post('***', data={'key':'value'}) ``` 在上面的POST请求中,我们通过`requests.post`方法传递了目标URL和一个字典,字典里的数据会被自动编码为表单数据。 此外,Requests库也支持发送其他类型的HTTP请求,例如PUT和DELETE请求: ``` r = requests.put('***', data={'key':'value'}) r = requests.delete('***') ``` 当我们需要向URL中添加查询字符串参数时,我们可以将它们作为字典传递给`params`关键字参数。例如: ``` payload = {'key1': 'value1', 'key2': 'value2'} r = requests.get("***", params=payload) ``` 这样会自动构建出带有正确编码参数的URL。 通过打印r.url,我们可以看到Requests库已经正确地对参数进行了编码。如果字典中有值为None的键,则这些键不会被添加到URL查询字符串中。而且,我们还可以向params传递列表,作为值。 获取响应内容也是通过Response对象来完成的。我们可以使用r.text来读取文本响应的内容。如果响应包含unicode字符,Requests会自动进行解码。如果需要改变响应内容的解码方式,可以修改r.encoding属性: ``` print(r.encoding) r.encoding = 'ISO-8859-1' ``` 在默认情况下,Requests根据HTTP头部推测响应的编码,但我们可以手动指定一个编码,例如当响应头中没有指定编码时。 在某些情况下,例如当HTTP头或XML本身指定了编码时,我们可能需要使用r.content找到正确的编码,然后使用r.encoding设置它,以便正确解析文本内容。此外,Requests支持使用定制的编码,如果我们注册了自己的编码器,就可以直接使用解码器名称设置r.encoding。 以上内容介绍的是Python Requests库的基础用法。通过这篇入门指南,我们可以快速学会如何使用这个强大的库来处理HTTP请求。当然,Requests库的功能远不止这些,它还支持会话保持、SSL证书验证、代理支持、认证等多种高级功能。掌握这些基础用法之后,可以继续深入学习其他高级功能,以满足更复杂的网络交互需求。