Python中Requests库的实现示例

 更新时间:2025年05月19日 10:32:13   作者:wanglaqqqq  
Requests是Python生态中最广泛使用的HTTP客户端库,本文主要介绍了Python中Requests库的实现示例,具有一定的参考价值,感兴趣的可以了解一下

一、Requests 库简介

Requests 是 Python 生态中 ​最广泛使用的 HTTP 客户端库,以「人类友好」为核心设计理念,简化了 HTTP 协议交互的复杂性。其核心价值包括:

  • 极简 API:通过 requests.get()post() 等函数实现复杂网络操作,代码量比原生 urllib 减少 70% 以上。
  • 全协议支持:覆盖 GET、POST、PUT、DELETE 等主流 HTTP 方法,适配 RESTful API、WebSocket 等场景。
  • 高效稳定:内置连接池复用、自动重试、超时控制等机制,支持每秒 1000+ 次高并发请求。
  • 生态兼容:无缝对接 BeautifulSoup(网页解析)、Pandas(数据处理)、Flask(服务测试)等工具链。

二、安装与环境配置

# 基础安装(Python 3.7+ 环境)  
pip install requests  

# 国内镜像加速安装  
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests  

验证安装

import requests  
print(requests.__version__)  # 输出示例:2.31.0  

三、核心功能与常用函数

​1. HTTP 基础请求方法

函数功能描述示例代码
​**requests.get()**发送 GET 请求(数据获取场景)response = requests.get("https://api.github.com")
​**requests.post()**发送 POST 请求(表单提交/API 调用)requests.post("https://httpbin.org/post", data={"key": "value"})
​**requests.put()**发送 PUT 请求(资源更新)requests.put("https://api.example.com/data/1", json={"name": "Kimi"})
​**requests.delete()**发送 DELETE 请求(资源删除)requests.delete("https://api.example.com/data/1")
​**requests.Session()**创建会话对象(保持 Cookies 和 TCP 连接复用,提升性能)with requests.Session() as s: s.get("https://example.com")

2. 请求参数与定制化

  • 查询参数传递

    params = {"q": "Python", "page": 2}  
    response = requests.get("https://search.example.com", params=params)  

    生成 URL:https://search.example.com?q=Python&page=2 

  • 请求头定制

    headers = {"User-Agent": "Mozilla/5.0", "Authorization": "Bearer YOUR_TOKEN"}  
    requests.get("https://api.example.com", headers=headers)  

    模拟浏览器行为或身份验证 

  • JSON 数据提交

    requests.post("https://api.example.com/login", json={"username": "admin", "password": "secret"})  

    自动设置 Content-Type: application/json 

​3. 响应处理与解析

属性/方法功能描述示例代码
​**response.status_code**获取 HTTP 状态码(如 200 表示成功,404 资源未找到)if response.status_code == 200: print("成功")
​**response.text**获取响应内容(自动解码文本,如 HTML/XML)print(response.text[:500]) # 截取前500字符
​**response.json()**解析 JSON 响应为 Python 字典或列表data = response.json(); print(data["temperature"])
​**response.headers**获取响应头信息(如服务器类型、缓存策略)print(response.headers["Content-Type"])
​**response.raise_for_status()**自动抛出异常(状态码非 200 时触发)try: response.raise_for_status() except requests.HTTPError: ...

4. 高级功能

  • 文件上传与下载

    # 上传文件  
    files = {"file": open("report.pdf", "rb")}  
    requests.post("https://api.example.com/upload", files=files)[4,6](@ref)  
    
    # 流式下载大文件  
    with requests.get("https://example.com/large_video.mp4", stream=True) as r:  
        with open("video.mp4", "wb") as f:  
            for chunk in r.iter_content(chunk_size=8192):  
                f.write(chunk)  
  • 超时与重试策略

    from requests.adapters import HTTPAdapter  
    from urllib3.util.retry import Retry  
    
    retry = Retry(total=3, backoff_factor=1, status_forcelist=[500, 502, 503])  
    adapter = HTTPAdapter(max_retries=retry)  
    session = requests.Session()  
    session.mount("https://", adapter)  
    session.get("https://unstable-api.com", timeout=5)  # 超时5秒,重试3次[4,6](@ref)  

四、应用场景与实战案例

  • 数据采集与爬虫

    • 抓取新闻标题:requests.get() + BeautifulSoup 解析 HTML
    • 动态内容加载:配合 Selenium 处理 JavaScript 渲染页面
  • API 集成开发

    • 调用天气接口:requests.get("https://weather-api.com?city=北京")
    • 对接 ChatGPT:发送 JSON 请求并处理流式响应
  • 自动化测试

    • 验证 REST API 功能:断言响应状态码和数据格式
    • 压力测试:多线程并发发送请求(需结合 concurrent.futures
  • 企业级应用

    • 财务报表批量下载:会话保持 + 定时任务
    • 跨系统数据同步:OAuth 认证 + POST/PUT 方法

​五、注意事项与优化技巧

  • 安全规范

    • 敏感数据(如 API Key)避免硬编码,使用环境变量管理
    • 启用 HTTPS 并验证证书:verify=True(默认)
  • 性能调优

    • 复用 Session 对象减少 TCP 握手开销
    • 设置合理超时:timeout=10 防止阻塞主线程
  • 异常处理

    try:  
        response = requests.get(url, timeout=5)  
        response.raise_for_status()  
    except requests.Timeout:  
        print("请求超时")  
    except requests.ConnectionError:  
        print("网络连接失败")  

到此这篇关于Python中Requests库的实现示例的文章就介绍到这了,更多相关Python Requests库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中的Popen函数demo演示

    Python中的Popen函数demo演示

    在Python的subprocess模块中,Popen函数用于创建子进程并与之通信,相较于os.system(),Popen提供了更多灵活性,如可捕获子进程的标准输出和错误,exe_path参数用于指定要执行的文件或命令,本文给大家介绍Python中的Popen函数,感兴趣的朋友一起看看吧
    2024-09-09
  • Python爬虫之Selenium鼠标事件的实现

    Python爬虫之Selenium鼠标事件的实现

    这篇文章主要介绍了Python爬虫之Selenium鼠标事件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Python时间差中seconds和total_seconds的区别详解

    Python时间差中seconds和total_seconds的区别详解

    今天小编就为大家分享一篇Python时间差中seconds和total_seconds的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python第三方库的几种安装方式(小结)

    Python第三方库的几种安装方式(小结)

    这篇文章主要介绍了Python第三方库的几种安装方式(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例

    Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例

    这篇文章主要介绍了Python实现可获取网易页面所有文本信息的网易网络爬虫功能,涉及Python针对网页的获取、字符串正则判定等相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • Python如何去除图片干扰代码示例

    Python如何去除图片干扰代码示例

    图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,这篇文章主要介绍了Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-06-06
  • python中Pycharm 输出中文或打印中文乱码现象的解决办法

    python中Pycharm 输出中文或打印中文乱码现象的解决办法

    本篇文章主要介绍了python中Pycharm 输出中文或打印中文乱码现象的解决办法 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Python中模块string.py详解

    Python中模块string.py详解

    这篇文章主要介绍了Python中模块之string.py的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • 基于Python3制作一个带GUI界面的小说爬虫工具

    基于Python3制作一个带GUI界面的小说爬虫工具

    这篇文章主要为大家介绍了一个通过Python3制作的带GUI界面的小说爬虫工具,用来从笔趣阁爬取小说。感兴趣的小伙伴可以跟随小编一起动手尝试一下
    2022-02-02
  • Python实现缓存的两个简单方法

    Python实现缓存的两个简单方法

    缓存是一种用于提高应用程序性能的技术,它通过临时存储程序获得的结果,以便在以后需要时重用它们,本文将学习Python中的不同缓存技术,感兴趣的可以了解下
    2024-11-11

最新评论