【Python】一文教你如何使用 Requests 库

简介: Requests 库是一个简洁易用的 Python HTTP 库,它基于 urllib3 库,可以用来发送 HTTP 请求,并处理响应结果。Requests 库提供了一种更人性化的接口,让用户更容易地编写 HTTP 请求代码。相比于 Python 自带的 urllib/urllib2 库,Requests 功能更加完整且易用,而且支持多种协议和认证方式,具有更好的扩展性和可读性。

image.png
简介
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 库的主要功能包括:

    1. 发送 HTTP 请求
    Requests 库可以发送 HTTP 请求,其中包括 GET、POST、PUT、PATCH、DELETE 等常见的 HTTP 请求方法,还支持定制请求头、请求参数、请求体、Cookie 等信息。同时,Requests 库还支持 HTTPS 和代理服务器等特性。

    2. 处理响应结果
    Requests 库可以处理 HTTP 响应结果,包括获取响应头、状态码、响应体、Cookies 等信息。同时,Requests 库还支持编码、解码响应结果、自动解析 JSON 和 XML 格式的响应结果。

    3. Session 管理
    Requests 库支持 Session 管理,可以让用户在多个请求之间共享 Cookie、用户认证等信息。同时,Session 还支持本地存储、代理和 SSL 验证等特性。

    4. 文件上传和下载
    Requests 库还支持上传和下载文件,可以处理文件的二进制流和文本流,同时还支持断点续传等特性。

    5. 其他特性
    Requests 库还支持重定向处理、认证、代理、超时控制、SSL 验证等特性,使得用户可以更好地控制 HTTP 请求的行为。

使用步骤
1. 安装 Requests 库
使用 pip 工具可以很方便地安装 Requests 库。

pip install requests

如果是Linux,没有安装 pip 工具,请先使用以下命令安装:

sudo apt-get install python-pip

2. 发送 HTTP 请求
使用 Requests 库可以很容易地发送 HTTP 请求。以下是一个简单的代码:


import requests

response = requests.get('https://www.baidu.com')
print(response.text)

在上面的代码中,我们使用 requests 库发送了一个 HTTP GET 请求,获取了百度首页的 HTML 内容,并打印输出了响应结果的文本内容。当然,除了 GET 请求之外,还可以发送 POST、PUT、PATCH、DELETE 等请求方法,以及定制请求头、请求参数、请求体等信息。
3.处理响应结果
处理 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 格式的结果等。同时,还支持自定义解析器,以便处理非标准的响应格式。
4.Session 管理
使用 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 值。
5.文件上传和下载
使用 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 的文件,并打印输出了响应结果的文本内容。
以下是更多使用 Requests 库的示例代码:
1.使用 POST 方法发送 HTTP 请求,并传递 URL 参数和请求头:


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)

2.自动处理 JSON 格式的响应结果:


import requests

url = 'https://jsonplaceholder.typicode.com/todos/1'
response = requests.get(url)
data = response.json()
print(data)

3.使用代理服务器:


import requests

proxies = {
  'http': 'http://localhost:8080',
  'https': 'https://localhost:8080',
}
response = requests.get('http://httpbin.org/ip', proxies=proxies)
print(response.text)

4.超时设置:


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 库是不可或缺的一部分,可以使代码更加清晰、简洁和易于维护。

image.png

目录
相关文章
|
8月前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
1941 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
8月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
751 0
|
10月前
|
存储 Web App开发 前端开发
Python + Requests库爬取动态Ajax分页数据
Python + Requests库爬取动态Ajax分页数据
|
7月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
714 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
7月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
570 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
9月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
620 18
|
10月前
|
JSON 网络安全 数据格式
Python网络请求库requests使用详述
总结来说,`requests`库非常适用于需要快速、简易、可靠进行HTTP请求的应用场景,它的简洁性让开发者避免繁琐的网络代码而专注于交互逻辑本身。通过上述方式,你可以利用 `requests`处理大部分常见的HTTP请求需求。
738 51
|
9月前
|
机器学习/深度学习 API 异构计算
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
JAX是Google开发的高性能数值计算库,旨在解决NumPy在现代计算需求下的局限性。它不仅兼容NumPy的API,还引入了自动微分、GPU/TPU加速和即时编译(JIT)等关键功能,显著提升了计算效率。JAX适用于机器学习、科学模拟等需要大规模计算和梯度优化的场景,为Python在高性能计算领域开辟了新路径。
892 0
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
|
9月前
|
数据采集 存储 Web App开发
Python爬虫库性能与选型实战指南:从需求到落地的全链路解析
本文深入解析Python爬虫库的性能与选型策略,涵盖需求分析、技术评估与实战案例,助你构建高效稳定的数据采集系统。
695 0
|
9月前
|
存储 监控 安全
Python剪贴板监控实战:clipboard-monitor库的深度解析与扩展应用
本文介绍了基于Python的剪贴板监控技术,结合clipboard-monitor库实现高效、安全的数据追踪。内容涵盖技术选型、核心功能开发、性能优化及实战应用,适用于安全审计、自动化办公等场景,助力提升数据管理效率与安全性。
311 0

推荐镜像

更多