当前位置: 首页 > java >正文

【Python - 类库 - requests】(01)使用“requests“库的基本介绍...

requests 是一个常用的 Python 库,用于发送 HTTP 请求并获取响应结果。它比 urllib 模块更简洁,提供了更友好的接口。使用 requests 库可以方便地向网站发送 GET、POST、PUT、DELETE 等请求,并处理响应内容。

基本用法

首先,需要导入 requests 模块:

import requests

然后,可以使用 requests 提供的方法向指定 URL 发送 HTTP 请求。例如,发送一个 GET 请求:

response = requests.get('https://www.runoob.com/')
print(response.text) # 输出网页内容

每次调用 requests 请求之后,会返回一个 response 对象,该对象包含了具体的响应信息,如状态码、响应头、响应内容等。

常用方法

requests 库提供了多种方法来发送不同类型的 HTTP 请求:

  • requests.get(url, params, args): 发送 GET 请求
  • requests.post(url, data, json, args): 发送 POST 请求
  • requests.put(url, data, args): 发送 PUT 请求
  • requests.delete(url, args): 发送 DELETE 请求
  • requests.head(url, args): 发送 HEAD 请求
  • requests.patch(url, data, args): 发送 PATCH 请求
  • requests.request(method, url, args): 发送指定方法的请求

例如,发送一个 POST 请求并附加参数:

url = 'https://www.runoob.com/try/ajax/demo_post2.php'
data = {'fname': 'RUNOOB', 'lname': 'Boy'}
response = requests.post(url, data=data)
print(response.text) # 输出响应内容
设置请求头和查询参数

可以在请求中附加额外的参数,例如请求头、查询参数等:

headers = {"User-Agent": "Mozilla/5.0"}
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get("https://www.runoob.com/", params=params, headers=headers)
print(response.status_code) # 查看响应状态码
print(response.url) # 查看完整URL地址
print(response.text) # 查看响应内容
处理响应

response 对象包含了丰富的响应信息,可以通过以下属性和方法获取:

  • response.status_code: 获取响应状态码
  • response.headers: 获取响应头
  • response.content: 获取响应内容(字节)
  • response.text: 获取响应内容(字符串)
  • response.json(): 获取 JSON 格式的响应内容
  • response.cookies: 获取响应的 cookies
  • response.elapsed: 获取响应时间
  • response.history: 获取请求历史

例如,获取 JSON 响应内容:

response = requests.get('https://www.runoob.com/try/ajax/json_demo.json')
print(response.json()) # 输出 JSON 内容
错误处理

可以使用 response.raise_for_status() 方法来检查请求是否成功,如果发生错误,会抛出 HTTPError 异常:

try:response = requests.get('https://www.runoob.com/404')response.raise_for_status()
except requests.exceptions.HTTPError as err:print(f"HTTP error occurred: {err}")

通过以上方法,requests 库可以方便地处理各种 HTTP 请求和响应,适用于爬虫、API 调用等场景。

http://www.xdnf.cn/news/20266.html

相关文章:

  • 行业了解07:政府/公共部门
  • TVS防护静电二极管选型需要注意哪些参数?-ASIM阿赛姆
  • 【数据结构、java学习】数组(Array)
  • 纯血鸿蒙开发入门:1.开发准备
  • 【NotePad++设置自定义宏】
  • 看显卡低负载状态分析运行情况
  • Kaggle - LLM Science Exam 大模型做科学选择题
  • 上下文工程:AI应用成功的关键架构与实践指南
  • maven编译问题
  • 【智慧城市】2025年中国地质大学(武汉)暑期实训优秀作品(3):基于Mapbox GL JS 构建的城市三维可视化系统
  • 基于单片机雏鸡家禽孵化系统/孵化环境监测设计
  • 【Go】P2 Golang 常量与变量
  • 从零构建企业级LLMOps平台:LMForge——支持多模型、可视化编排、知识库与安全审核的全栈解决方案
  • 亲历记:我如何用新系统终结了财务部的开票混乱
  • 全球汽车氮化镓技术市场规模将于2031年增长至180.5亿美元,2025-2031年复合增长率达94.3%,由Infineon和Navitas驱动
  • 中国生成式引擎优化(GEO)市场分析:领先企业格局与未来趋势分析
  • 安全沙箱配置针对海外vps容器隔离的验证方法
  • CAD:绘图功能
  • eda(电子设计自动化)行业的顶级技术机密,布局布线优化的遗传算法实现,以及国内为什么做不成商业EDA
  • RWA点亮新能源的数字未来
  • DJANGO后端服务启动报错及解决
  • 如何在没有权限的服务器上下载NCCL
  • Photoshop图层
  • 【分享】AgileTC测试用例管理平台使用分享
  • 入针点云在皮肤模型上的投影(去除肋骨)
  • HashMap多线程下的循环链表问题
  • 25高教社杯数模国赛【B题高质量成品论文+无盲点解析】第一弹
  • 单元测试:Jest 与 Electron 的结合
  • OpenCV C++ 核心:Mat 与像素操作全解析
  • CAN通信入门