news 2026/3/30 14:19:01

Python requests 库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python requests 库

Pythonrequests库是一个用于发送HTTP请求的第三方库,以其简洁、优雅的API和强大的功能,成为Python开发者处理网络请求的首选工具。它让HTTP请求变得像访问本地文件一样简单直观。

1. 安装与导入

在开始使用前,需要先安装requests库。

pip install requests

如果安装后运行时仍提示ModuleNotFoundError: No module named 'requests',可能的原因和解决方案包括:

  • 检查环境:确保你安装requests的Python环境与运行代码的环境一致(尤其是在使用PyCharm等IDE的虚拟环境时)。
  • 切换国内镜像源:如果网络不佳导致安装失败,可以尝试使用清华、阿里云等国内镜像源加速安装。
  • 避免同名文件冲突:确保你的项目目录下没有命名为requests.py的文件,否则会覆盖官方库。
  • 更新pip:使用python -m pip install --upgrade pip更新pip工具。

安装成功后,在代码中导入即可:

import requests

2. 发送基础请求

requests支持所有常见的HTTP方法,如 GET、POST、PUT、DELETE 等。

  • 发送GET请求:使用requests.get()方法,用于从服务器获取数据。

    response = requests.get(' https://api.example.com/data')

    如果需要传递查询参数,可以使用params参数,库会自动完成URL编码。

    params = {'key1': 'value1', 'key2': 'value2'} response = requests.get(' https://api.example.com/data', params=params)
  • 发送POST请求:使用requests.post()方法,用于向服务器提交数据。

    • 提交表单数据:使用data参数。
      data = {'username': 'admin', 'password': '123456'} response = requests.post(' https://api.example.com/login', data=data)
    • 提交JSON数据:使用json参数,库会自动将字典序列化为JSON并设置正确的请求头Content-Type: application/json
      data = {'username': 'admin', 'password': '123456'} response = requests.post(' https://api.example.com/login', json=data)

3. 处理响应

发送请求后返回的response对象包含了服务器返回的所有信息。

  • 检查状态码:通过response.status_code获取HTTP状态码,例如200表示成功。可以使用response.raise_for_status()在状态码不是200时自动抛出异常。
  • 获取响应内容
    • response.text:以字符串形式返回响应内容(库会尝试自动解码)。
    • response.content:以二进制字节形式返回响应内容,适用于下载图片、文件等。
    • response.json():如果响应内容是JSON格式,此方法会将其解析为Python字典或列表。
  • 查看响应头:通过response.headers获取,它是一个字典。

4. 高级功能与配置

  • 设置请求头:通过headers参数传递字典,常用于设置User-Agent、Authorization令牌等。

    headers = {'User-Agent': 'my-app/1.0.0', 'Authorization': 'Bearer YOUR_TOKEN'} response = requests.get(url, headers=headers)
  • 使用会话 (Session)requests.Session()对象可以在多个请求间保持某些参数(如cookies、headers),并复用TCP连接,提升性能。

    session = requests.Session() session.headers.update({'User-Agent': 'my-app/1.0.0'}) # 登录,会话会自动保存cookies session.post(' https://example.com/login', data={'user': 'name', 'pass': 'word'}) # 后续请求自动携带登录后的cookies response = session.get(' https://example.com/dashboard')
  • 设置超时:使用timeout参数(单位:秒)防止请求无限期挂起。

    response = requests.get(url, timeout=5)
  • 设置代理:通过proxies参数配置代理服务器。

    proxies = {'http': ' http://10.10.1.10:3128', 'https': ' http://10.10.1.10:1080' } response = requests.get(url, proxies=proxies)
  • 文件上传与下载

    • 上传:使用files参数。
      files = {'file': open('report.pdf', 'rb')} response = requests.post(url, files=files)
    • 下载:获取response.content并写入本地文件。
      response = requests.get(file_url) with open('local_file.pdf', 'wb') as f: f.write(response.content)

5. 错误与异常处理

网络请求可能失败,建议使用try-except块进行捕获。

try: response = requests.get(url, timeout=5) response.raise_for_status() # 如果状态码不是200,抛出HTTPError异常 # 处理成功响应 data = response.json() except requests.exceptions.Timeout: print("请求超时") except requests.exceptions.HTTPError as err: print(f"HTTP错误: {err}") except requests.exceptions.RequestException as err: print(f"请求异常: {err}")

总结

Pythonrequests库的核心优势在于其“HTTP for Humans”的设计哲学,将复杂的HTTP协议封装成极其简单的方法调用。它功能全面,支持身份验证、连接池、自动内容解码、Cookie管理等,拥有丰富的文档和庞大的社区,是进行Web API调用、网络爬虫开发或任何需要HTTP通信任务的理想选择。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 12:17:20

5分钟掌握Monaspace字体:全平台安装配置终极指南

5分钟掌握Monaspace字体:全平台安装配置终极指南 【免费下载链接】monaspace An innovative superfamily of fonts for code 项目地址: https://gitcode.com/gh_mirrors/mo/monaspace 还在为代码编辑器字体不够清晰而烦恼吗?Monaspace字体家族为你…

作者头像 李华
网站建设 2026/3/25 4:28:06

微PE官网启动盘能否跑GLM-4.6V-Flash-WEB?条件有限慎尝试

微PE启动盘能跑GLM-4.6V-Flash-WEB吗?别试了,这条路走不通 你有没有想过,把一个最新的多模态大模型塞进U盘,在任何电脑上插进去就能运行?听起来像是“即插即用AI”的终极梦想。尤其是当你手头只有一台老旧机器、或者只…

作者头像 李华
网站建设 2026/3/18 5:14:12

PyCharm断点调试GLM-4.6V-Flash-WEB Python脚本

PyCharm断点调试GLM-4.6V-Flash-WEB Python脚本 在构建智能图文理解系统时,开发者常常面临一个尴尬的现实:模型看似运行正常,但输出结果却“答非所问”——比如上传一张猫的图片,提问“图中动物是什么?”,模…

作者头像 李华
网站建设 2026/3/27 16:35:52

Dify API调用全链路监控方案,快速定位生产环境问题

第一章:Dify API调用全链路监控概述在构建基于 Dify 的 AI 应用时,API 调用的稳定性与性能直接影响用户体验。全链路监控旨在追踪从客户端发起请求到 Dify 平台处理并返回结果的完整路径,涵盖网络延迟、响应状态、上下文传递及错误溯源等关键…

作者头像 李华
网站建设 2026/3/27 8:16:00

sward快速上手指南 - 如何做好文档评审

知识库不是文件的堆积,而是组织的核心资产。不仅要避免因为文档错误而导致项目出现问题,还要减少后续的维护成本,让知识库真正成为团队资产而不是负担。文档评审是守护这份资产质量的“守门员”。1、开启评审创建知识库时(以公共知…

作者头像 李华
网站建设 2026/3/25 8:54:46

浙大开源3B模型碾压GPT-4o,小白也能开发的GUI交互神器来了!

随着多模态大语言模型(MLLM)的飞速发展,能够像人类一样通过视觉输入操作图形用户界面(GUI)的智能体(Agent)正逐渐成为现实。然而,在通往通用计算机控制的道路上,如何让模…

作者头像 李华