Python—requests模块

Python requests 模块代码演示

requests 是 Python 中一个简单易用的 HTTP 库,用于发送各种 HTTP 请求。下面是一些常见的使用示例:

1. 基本 GET 请求

import requests# 发送 GET 请求
response = requests.get('https://api.github.com')# 检查请求是否成功 (状态码 200)
if response.status_code == 200:print('请求成功!')print('响应内容:', response.text[:200])  # 打印前200个字符
else:print('请求失败,状态码:', response.status_code)

2. 带参数的 GET 请求

import requests# 定义查询参数
params = {'q': 'python','sort': 'stars','order': 'desc'
}# 发送带参数的 GET 请求
response = requests.get('https://api.github.com/search/repositories', params=params)# 解析 JSON 响应
if response.status_code == 200:data = response.json()print(f"找到 {data['total_count']} 个仓库")print("前几个仓库:")for repo in data['items'][:3]:print(f"- {repo['name']} ({repo['stargazers_count']} 星)")

3. POST 请求

import requests
import json# 要发送的数据
data = {'name': 'John Doe','email': 'john@example.com'
}# 发送 POST 请求
response = requests.post('https://httpbin.org/post',data=json.dumps(data),  # 将字典转换为JSON字符串headers={'Content-Type': 'application/json'}
)# 检查响应
if response.status_code == 200:print('POST 请求成功!')print('响应数据:', response.json())

4. 处理响应

import requestsresponse = requests.get('https://api.github.com/events')# 不同的响应属性
print("状态码:", response.status_code)
print("响应头:", response.headers['Content-Type'])
print("编码:", response.encoding)
print("文本内容:", response.text[:100])  # 文本格式
print("JSON内容:", response.json()[0])  # 如果响应是JSON格式

5. 错误处理

import requests
from requests.exceptions import RequestExceptiontry:response = requests.get('https://api.github.com/nonexistent', timeout=5)response.raise_for_status()  # 如果请求失败会抛出异常
except RequestException as e:print(f"请求发生错误: {e}")
else:print("请求成功!")

6. 会话对象 (保持会话)

import requests# 创建会话对象
session = requests.Session()# 设置会话级别的默认值
session.headers.update({'User-Agent': 'MyApp/1.0'})# 第一次请求 - 会设置cookie
response1 = session.get('https://httpbin.org/cookies/set/sessionid/12345')# 第二次请求 - 会自动携带之前的cookie
response2 = session.get('https://httpbin.org/cookies')print(response2.text)

7. 文件上传

import requestsurl = 'https://httpbin.org/post'
files = {'file': open('example.txt', 'rb')}response = requests.post(url, files=files)
print(response.text)

8. 基本认证

import requests
from requests.auth import HTTPBasicAuthresponse = requests.get('https://api.github.com/user',auth=HTTPBasicAuth('username', 'password')
)# 或者简写为:
# response = requests.get('https://api.github.com/user', auth=('username', 'password'))print(response.status_code)

9. 超时设置

import requeststry:# 设置连接和读取超时为5秒response = requests.get('https://api.github.com', timeout=5)print("请求在超时前完成")
except requests.exceptions.Timeout:print("请求超时")

10. 代理设置

import requestsproxies = {'http': 'http://10.10.1.10:3128','https': 'http://10.10.1.10:1080',
}response = requests.get('https://api.github.com', proxies=proxies)
print(response.status_code)

这些示例涵盖了 requests 模块的最常用功能。requests 的 API 设计非常直观,使得发送 HTTP 请求变得非常简单。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/89640.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89640.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为仓颉编程语言语法简介与示例

华为仓颉编程语言语法简介与示例 仓颉编程语言是华为自主研发的新一代通用编程语言,由南京大学冯新宇教授团队主导设计,于 2024 年华为开发者大会(HDC)正式发布,并在 2025 年 7 月推出首个长期支持版本(LTS…

触发器的创建

- 建立product表,操作方式operate表要求1.定义触发器实现在产品表(product)中每多一个产品,就在操作表(operate)中记录操作方式和时间以及编号记录。注:操作说明:标记执行delete 、insert、update2.定义触发器实现在产品表(product)中每更新一…

论文略读: RASA: RANK-SHARING LOW-RANK ADAPTATION

ICLR 2025尽管 LoRA 有诸多优势,但近期研究表明,它在大规模训练数据集和复杂任务(如数学推理和代码生成)中,仍然落后于全参数微调(FFT)一个合理的解释是:低秩约束限制了 LoRA 的表达…

VSCode - VSCode 查找中文字符

VSCode 查找中文字符 1、查找中文字符使用快捷键 Ctrl F 打开查找框点击正则表达式按钮 .*在搜索框中输入 [\u4e00-\u9fa5],这个范围涵盖了基本的中文字符2、查找中文字符串使用快捷键 Ctrl F 打开查找框点击正则表达式按钮 .*在搜索框中输入 [\u4e00-\u9fa5]&a…

SQL基础操作指南:增删改查入门

前言 在日常数据库操作中,掌握增删查改是每个开发者必备的技能。下面我将通过实例解析SQL的核心操作要点,帮你避开常见陷阱。一、新增数据(INSERT) 单行插入:明确指定字段和值 INSERT INTO 表名(字段1, 字段2) VALUES …

Linux系统安装Docker及部署Node.js 20.15.0(含pnpm、pm2)完整指南

前言:在应用项目部署中,“环境不一致”往往是开发与运维的痛点——本地能跑的代码到了服务器就报错,依赖版本、系统配置差异都可能成为隐患。而Docker的容器化技术恰好能解决这一问题,通过“一次构建,到处运行”的特性…

python的多线程无法并行只能并发,why?

标题python的多线程无法并行只能并发,why?python的多线程无法并行只能并发,why? 在 Python 中,特别是使用 CPython 解释器时,由于存在 全局解释器锁(GIL),即使在多核处理…

Kotlin比较接口

在 Kotlin 中,Comparable 和 Comparator 是两个允许开发者对相同或不同类的对象进行比较的接口。这两个接口通常用于基于一个或多个属性对对象集合进行排序与排序操作。本文将概述 Kotlin 的 Comparable 和 Comparator 接口,解释它们的用法,并…

day41 简单CNN

DAY 41 首先回顾下昨天的代码。 # import torch # import torch.nn as nn # import torch.optim as optim # from torchvision import datasets, transforms # from torch.utils.data import DataLoader # import matplotlib.pyplot as plt # import numpy as np# # 设置中文字…

[实战]巴特沃斯滤波器全流程解析:从数学原理到硬件实现

巴特沃斯滤波器全流程解析:从数学原理到硬件实现 文章目录巴特沃斯滤波器全流程解析:从数学原理到硬件实现1. 数学原理2. 工程实现梯形网络结构3. Python理论仿真4. 硬件仿真与PCB考虑5. 完整设计工具6. 输出结果示例7. 设计注意事项巴特沃斯滤波器是特别…

《机器学习数学基础》补充资料:标准差与标准化

1 标准差 我们经常使用平均数来大致了解一组数据,例如平均成绩、平均身高、平均寿命等等。但是如果只看平均数,不一定能充分了解整体情况。比如说你和某首富住同一个社区,你们社区平均每户年收入两千万,那么你家是有钱还是没钱&am…

深度学习 | 多类交叉熵(Categorical Cross Entropy)详解 + Python实现

在多分类任务中,模型输出一个概率分布,常用的损失函数是 Categorical Cross Entropy(多类交叉熵)。本文将带你理解其数学本质、应用场景、数值稳定性及完整 Python 实现。📘 一、什么是 Categorical Cross Entropy&…

MyBatis-Plus通用中等、大量数据分批查询和处理

函数式接口 获取分页数据接口 主要用于获取数据 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;FunctionalInterface public interface MyBatisPlusPageFunctionInterface<T> {Page<T> selectPage(Page<T> page);}数据处理接口 import…

Ps 2025安装包(Adobe Photoshop 2025)安装包免费免激活版下载 附图文详细安装教程

[软件名称]&#xff1a;Ps2025 V26.3 [软件大小]&#xff1a;4.86 G [系统要求]&#xff1a;支持Win7及更高版本 [夸克网盘下载https://pan.quark.cn/s/d35677af9ef9 &#xff08;建议用手机保存到网盘后&#xff0c;再用电脑下载&#xff09;更多免费软件见https://docs.qq.co…

Codeforces Round 1037 (Div. 3)(补题)

文章目录前言A.Only One DigitB.No Casino in the MountainsC. I Will Definitely Make ItD.This Is the Last TimeE.G-C-D, Unlucky!总结前言 感觉前四道&#xff0c;就是考对于题目的理解能力&#xff0c;以及自己的模拟能力 A.Only One Digit 题目传送门&#xff1a;Only …

基于单片机智能插座设计/智能开关

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览 概述 随着我国的电子计算机技术的快速发展以及居民对现实生活的要求也在不断提升&#xff0c;所以很多…

[Linux]git_gdb

一、git1. git 常用指令git status 查看仓库状态git add <文件名> 把文件添加到仓库暂存区git commit -m "信息" 把文件加入仓库git push 把本地仓库同步到远端git pull …

医疗AI与融合数据库的整合:挑战、架构与未来展望(下)

🩺 解决方案:引入融合数据库(Multi-modal Data Fusion DB) 医院引入一款支持图、向量、表、流的融合数据库(如Oracle ADW、Milvus+PostgreSQL、或某国产平台),完成了以下集成: 数据类型 来源系统 格式/模型 示例内容 基因组数据 NGS平台 VCF / JSON / 图 EGFR突变、A…

【深度强化学习】MIP-DQN 实现案例(完整Python代码)

目录MIP-DQN 算法概述建模基础训练阶段&#xff08;Training&#xff09;部署阶段&#xff08;Online Execution&#xff09;DNN 网络转化为 MIP 表达式性能指标完整 Python 代码实现主函数&#xff1a;random_generator_battery模型函数&#xff1a;MIP_DQN基础/专用库包安装模…

微信小程序 wx.request() 的封装

基于微信小程序的wx.request()方法封装下面是一个封装方案&#xff0c;满足您提出的所有要求&#xff1a;class HttpService {constructor() {this.baseUrl ; // 基础URLthis.pendingRequests new Map(); // 请求缓存池this.interceptors {request: [],response: []};}// 设…