赞
踩
持续分享:机器学习、深度学习、python相关内容、日常BUG解决方法及Windows&Linux实践小技巧。
如发现文章有误,麻烦请指出,我会及时去纠正。有其他需要可以私信我或者发我邮箱:zhilong666@foxmail.com
目录
1. 使用 POST 方法发送 HTTP 请求,并传递 URL 参数和请求头:
Requests 库是一个简洁易用的 Python HTTP 库,它基于 urllib3 库,可以用来发送 HTTP 请求,并处理响应结果。Requests 库提供了一种更人性化的接口,让用户更容易地编写 HTTP 请求代码。相比于 Python 自带的 urllib/urllib2 库,Requests 功能更加完整且易用,而且支持多种协议和认证方式,具有更好的扩展性和可读性。
Requests 库是由 Kenneth Reitz 开发的。Kenneth 是一个 Python 社区的活跃成员,2011 年他发表了一篇名为 “Python HTTP: When in doubt, or when not in doubt, use Requests” 的博客,这篇文章介绍了他开发的 Requests 库,并强调了 Requests 库的易用性、友好性、可扩展性等优点。自此,Requests 库开始成为 Python 社区中最流行的 HTTP 库之一。Requests 库的当前版本是 2.26.0,是一个稳定、功能完善的 HTTP 库。
Requests 库可以发送 HTTP 请求,其中包括 GET、POST、PUT、PATCH、DELETE 等常见的 HTTP 请求方法,还支持定制请求头、请求参数、请求体、Cookie 等信息。同时,Requests 库还支持 HTTPS 和代理服务器等特性。
Requests 库可以处理 HTTP 响应结果,包括获取响应头、状态码、响应体、Cookies 等信息。同时,Requests 库还支持编码、解码响应结果、自动解析 JSON 和 XML 格式的响应结果。
Requests 库支持 Session 管理,可以让用户在多个请求之间共享 Cookie、用户认证等信息。同时,Session 还支持本地存储、代理和 SSL 验证等特性。
Requests 库还支持上传和下载文件,可以处理文件的二进制流和文本流,同时还支持断点续传等特性。
Requests 库还支持重定向处理、认证、代理、超时控制、SSL 验证等特性,使得用户可以更好地控制 HTTP 请求的行为。
使用 pip 工具可以很方便地安装 Requests 库。
pip install requests
如果是Linux,没有安装 pip 工具,请先使用以下命令安装:
sudo apt-get install python-pip
使用 Requests 库可以很容易地发送 HTTP 请求。以下是一个简单的代码:
- import requests
-
- response = requests.get('https://www.baidu.com')
- print(response.text)
在上面的代码中,我们使用 requests 库发送了一个 HTTP GET 请求,获取了百度首页的 HTML 内容,并打印输出了响应结果的文本内容。当然,除了 GET 请求之外,还可以发送 POST、PUT、PATCH、DELETE 等请求方法,以及定制请求头、请求参数、请求体等信息。
处理 HTTP 响应结果也非常简单。以下是一个简单的代码:
- import requests
-
- response = requests.get('https://www.baidu.com')
- print(response.status_code)
- print(response.headers)
- print(response.cookies)
- print(response.text)
在上面的代码中,我们使用 requests 库发送了一个 HTTP GET 请求,并获取了响应结果的状态码、响应头、Cookies 和文本内容。Requests 库还支持获取响应结果的二进制内容、JSON 和 XML 格式的结果等。同时,还支持自定义解析器,以便处理非标准的响应格式。
使用 Requests 库的 Session 管理,可以在多个请求之间共享 Cookie、用户认证等信息。以下是一个 Session 简单的管理代码:
- import requests
-
- s = requests.Session()
-
- s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
- r = s.get('http://httpbin.org/cookies')
- print(r.text)
在上面代码中,我们创建了一个 Session 对象 s,自动处理 Cookie,并发送了两个 GET 请求。第一个请求设置了 Cookie 的值,第二个请求获取了当前的 Cookie 值。在第二个请求中,使用了 Session 对象 s,它自动携带了第一个请求中设置的 Cookie 值。
使用 Requests 库可以方便地上传和下载文件。以下是一个简单的文件上传代码:
- import requests
-
- url = 'http://httpbin.org/post'
- files = {'file': open('report.xls', 'rb')}
- r = requests.post(url, files=files)
- print(r.text)
在上面代码中,我们使用 Requests 库发送了一个 HTTP POST 请求,上传了一个名为 report.xls 的文件,并打印输出了响应结果的文本内容。
- import requests
-
- url = 'http://httpbin.org/post'
- payload = {'key1': 'value1', 'key2': 'value2'}
- headers = {'User-Agent': 'Mozilla/5.0'}
- response = requests.post(url, data=payload, headers=headers)
- print(response.text)
- import requests
-
- url = 'https://jsonplaceholder.typicode.com/todos/1'
- response = requests.get(url)
- data = response.json()
- print(data)
- import requests
-
- proxies = {
- 'http': 'http://localhost:8080',
- 'https': 'https://localhost:8080',
- }
- response = requests.get('http://httpbin.org/ip', proxies=proxies)
- print(response.text)
- import requests
-
- response = requests.get('http://github.com', timeout=1)
- print(response.text)
Requests 库是一个功能强大、易用并受到广泛支持的 Python HTTP 库,它以其易用性、友好性、可扩展性等特点成为 Python 社区中最流行的 HTTP 库之一。Requests 提供了丰富的功能,包括发送 HTTP 请求、处理响应结果、Session 管理、文件上传和下载、代理服务器、重定向处理、认证、超时控制、SSL 验证等,同时提供了清晰、简单的 API,让用户更容易理解和使用。在开发 Python 网络应用程序时,Requests 库是不可或缺的一部分,可以使代码更加清晰、简洁和易于维护。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。