python库(12):Requests库实现HTTP请求

1 Requests库

Requests是一个极为流行的HTTP库,它允许你发送各种类型的HTTP请求。无论是GET、POST、PUT、DELETE还是其他类型的请求,Requests都能轻松搞定。

虽然还有其他HTTP库,但Requests库以其简洁的API和人性化的设计脱颖而出。它隐藏了HTTP协议的复杂性,让开发者可以专注于业务逻辑,而不是底层的网络细节。此外,Requests库支持Python 2.7和3.4+版本,这使得它能够覆盖广泛的用户群体。

2 安装Requests库

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pydantic

3 基本用法

3.1 GET请求

import requests#发送GET请求
response = requests.get("https://www.baidu.com")# 检查请求是否成功
if response.status_code == 200:print(response.text)
else:print('请求失败,状态码:', response.status_code)

结果如下:

3.2 POST请求

import requests# 发送POST请求
response = requests.post('https://www.example.com/submit', data={'key1': 'value1', 'key2': 'value2'})# 检查请求是否成功
if response.status_code == 200:print(response.text)
else:print('请求失败,状态码:', response.status_code)

3.3 处理Headers和Cookies

在某些情况下,你可能需要在请求中添加自定义的Headers或Cookies。Requests库也提供了相应的方法来处理这些情况:

import requests# 添加Headers
headers = {'User-Agent': 'my-app/0.0.1'}# 添加Cookies
cookies = {'cookie_name': 'cookie_value'}response = requests.get('https://www.example.com', headers=headers, cookies=cookies)

3.4 会话和连接池

Requests库还支持会话(Session)的使用,这可以帮助你维持某些参数和Cookies跨越多个请求。这对于需要保持状态的Web应用非常有用:

import requests# 创建一个Session对象
session = requests.Session()# 使用Session发送请求
response = session.get('https://www.example.com', headers={'User-Agent': 'my-app/0.0.1'})# 再次使用Session发送请求,可以保持Cookies等状态
another_response = session.get('https://www.example.com/another_page')

3.5 异常处理

在发送请求时,可能会遇到各种网络问题或其他异常。Requests库提供了异常处理机制,帮助你更好地控制程序的流程:

import requeststry:response = requests.get('https://www.example.com', timeout=0.01)  # 超时时间设置为0.01秒
except requests.exceptions.Timeout:print('请求超时')
except requests.exceptions.RequestException as e:print('请求异常:', e)

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

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

相关文章

寻找赛灵思IP核手册的办法

一、先google找到大家看的手册都是什么样的 二、在AMD技术手册网站搜索手册的名称 网址:AMD Technical Information Portal

科普文:spring boot中常用的接口、工具栏、注解整理

1.springboot 常用接口 1.1 Aware接口 Spring IOC容器中 Bean是感知不到容器的存在,Aware(意识到的)接口就是帮助Bean感知到IOC容器的存在,即获取当前Bean对应的Spring的一些组件,如当前Bean对应的ApplicationContext等。 1.1.1 Applicati…

python如何进行pip换源

hello,大家好,我是一名测试开发工程师,至今已在自动化测试领域深耕9个年头,现已将本人实战多年的多终端自动化测试框架【wyTest】开源啦,请大家快来体验并关注我吧。 Python的包管理工具pip是开发者必备的利器之一。然…

企业公司网站建站自适应网站源码系统 前后端分离 带完整的源代码包以及搭建部署教程

系统概述 在数字化转型的浪潮中,企业网站已成为展示品牌形象、吸引潜在客户、促进业务交流的重要窗口。为了满足企业对于高效、灵活、易维护网站建设的迫切需求,小编给大家分享一款集先进技术与人性化设计于一体的“企业公司网站建站自适应网站源码系统…

Windows 如何安装和卸载 OneDrive?具体方法总结

卸载 OneDrive 有人想问 OneDrive 可以卸载吗?如果你不使用当然可以卸载,下面是安装和卸载 OneDrive 中的卸载应用具体操作步骤: 卸载 OneDrive 我们可以从设置面板中的应用选项进行卸载,打开设置面板之后选择应用,然…

vue3+springboot+mybatis+mysql项目实践--简单登录注册功能实现

这里是一次对vue3springbootmybatismysql的项目实现,简单实现前后端分离的登录注册功能,主要工具:idea,navicat 目录 一、创建vue3项目并初始配置 创建vue3项目 2.修改项目结构 1)原始目录结构 2)修改后目录结构 …

RFID技术简介

1.RFID(无线射频设别技术)介绍 (1)RFID是一种通信技术,通过无线电讯号耦合识别特点目标并读写相关数据。 (2)类型 (3)应用 智慧仓库,AGV,ETC …

自动驾驶中,实现三维点旋转原理

文章目录 1. 三维点旋转的方案2. 使用复数表示二维点的旋转2.1. 复数的概念2.2. 复数的三种形式及相互转换2.3. 复数概念扩展:实数、虚数、复数 3. 四元数旋转三维点原理4. 使用四元数进行旋转的公式5. 旋转叠加6. 四元数转换为三维点7. 代码实现 1. 三维点旋转的方…

一文学会用RKE部署高可用Kubernetes集群

k8s架构图 RKE简介 RKE全称Rancher Kubernetes Engine,是一个快速的,多功能的 Kubernetes 安装工具。通过RKE,我们可以快速的安装一个高可用K8S集群。RKE 支持多种操作系统,包括 MacOS、Linux 和 Windows。 K8S原生安装需要的先…

【YOLOv5/v7改进系列】改进池化层为SimSPPF

一、导言 SimSPPF(Simplified Spatial Pyramid Pooling with Fixed-size kernel)模块是在YOLOv6架构中引入的一个关键组件,它旨在优化原始SPPF(Spatial Pyramid Pooling Fixed-size)模块的效率。以下是SimSPPF的一些优…

开发TEE的踩坑之开发TEE

系统:Ubuntu20.04(双系统,非虚拟机) 一、前置说明1、TEE平台的选择2、机器间的通信方式3、程序和数据集的示例4、结果文件的解密 二、服务器部署三、客户端部署四、工程应用 本系列为笔者开发TEE(Trusted Execution En…

【笔记】虚拟机中的主从数据库连接实体数据库成功后的从数据库不同步问题解决方法2

错误: Last_Errno: 1008 Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction ANONYMOUS at source log mysql-bin.000014, end_log_pos 200275. See error lo…

开放式耳机哪款好一点?开放式耳机科普五款推荐!

“选择开放式耳机真的太难了” “哥,怎么才能选到心仪的开放式耳机啊” 这种评论总是会出现后台或者现实的朋友也会问起来,所以作为耳机测评的博主,在这里给大家科普一下到底一款好用的开放式耳机到底怎么选,这篇文章我花了三天…

Centos系统内磁盘分区

Centos系统内磁盘分区 建议如果有重要数据提前做好备份 以根目录扩容50G为例: 1、卸载/home目录 umount /home 2、删除逻辑卷 y确认即可 lvremove /dev/mapper/centos-home 3、df -h查询一下,/home目录已经不见了 4、向根目录分区追加50G容量 lv…

网易云小程序资料分享

链接: https://pan.baidu.com/s/1jzP52Zq4R-nUTxN334XMJg 提取码: xhny

STM32基础篇:EXTI × 事件 × EXTI标准库

EXTI EXTI简介 EXTI:译作外部中断/事件控制器,STM32的众多片上外设之一,能够检测外部输入信号的边沿变化并由此产生中断。 例如,在检测按键时,按键按下时会使电平产生翻转,因此可以使用EXTI来读取按下时…

线上线下一体开源的Hugging Face?| 这些问题不可不看……

7月,2024世界人工智能大会暨人工智能全球治理高级别会议(WAIC 2024)在上海盛大启幕,以“以共商促共享,以善治促善智”为主题进行展览,OpenCSG首次亮相“CSGHub和StarShip”两大产品,全方位展现公…

HTML5新增的input元素类型:number、range、email、color、date等

HTML5 大幅度地增加与改良了 input 元素的种类,可以简单地使用这些元素来实现 HTML5 之前需要使用 JavaScript 才能实现的许多功能。 到目前为止,大部分浏览器都支持 input 元素的种类。对于不支持新增 input 元素的浏览器,input 元素被统一…

kotlin数据容器

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 容器是用于存放数据的载体。容器分为数组、集合。 Kotlin作为一门全新的语言,肯定还是要有自己的容…

网优学习干货:xx5G速率优化现场实战版

速率概述 无线网络仍然是5G网络能力最容易受限的环节,无线网络技术的应用将最终决定5G网络能力的木桶深度。移动通信中传统关键技术在5G将会继续使用。5G NR在继承了LTE原有部分技术基础上,采用了一些技术演进和新技术创新。比如NR继承了LTE的OFDM和SC-…