【Python】requests库的介绍及用法

目录

1、应用场景

2、requests-三方库


1、应用场景

Python中的requests库被广泛应用在需要发送HTTP请求的场景中。以下列举了一些主要的应用场景:

  1. API调用: 许多服务提供了API接口,我们可以使用requests库发送GET、POST、PUT、DELETE等请求来获取或修改服务器上的资源,如许多云服务平台的SDK就是基于requests库封装的。
  2. 网页爬虫: requests库常常配合BeautifulSoup等其他库一起用于爬虫。你可以使用requests库获取网页的内容,然后使用BeautifulSoup等库对获取的网页内容进行解析和提取。
  3. 数据下载: 例如,你想从某个网址下载一个文件,可以使用requests库完成这个任务。
  4. 自动化测试: requests库也经常被用在Web应用的自动化测试中,例如模拟用户行为,测试API接口等。
  5. Session管理: requests库可以对cookies进行手动处理,也提供了一个Session对象自动管理和持久化cookies,非常适合登录验证的场景。

总的来说,只要是涉及到HTTP请求,不管是获取信息,还是提交信息,requests库都是非常好用的工具。

2、requests-三方库

Python中requests库的基础使用方法很简单,主要涉及到的HTTP方法包括GET、POST、PUT、DELETE等。以下是一些基础的使用方法:

  • 发送GET请求:
import requests
response = requests.get('http://httpbin.org/get')
print(response.text)
  • 发送POST请求:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('http://httpbin.org/post', data=data)
print(response.text)
  • 发送带参数的GET请求:
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('http://httpbin.org/get', params=payload)
print(response.url)
print(response.text)
  • 上传文件:
import requests
url = 'http://httpbin.org/post'
files = {'file': open('report.xls', 'rb')}
response = requests.post(url, files=files)
print(response.text)

上述示例中,每个请求返回一个 Response 对象。这个对象包含服务器返回的所有信息,包括响应内容、响应状态码、响应头等。例如:

import requests
response = requests.get('http://httpbin.org/get')
print(response.status_code)  # 输出响应状态码
print(response.headers)  # 输出响应头
print(response.cookies)  # 输出cookies
print(response.json())  # 将响应内容解析为JSON

这只是requests库最基础的使用方法,它还有许多高级功能,例如处理Cookies、维护Session、处理重定向等。具体的使用方法可以参考官方文档或者进阶教程。

GET、POST、PUT、DELETE等方法都是HTTP协议中的请求方法,这些方法在requests库中对应相同名字的函数。它们的主要参数如下:

  • url: 请求的URL地址,为字符串。
  • params: 附加到URL中的查询参数,字典或字节序列,可选。
  • data: 请求体中的数据,字典、列表元组、字节序列或文件对象,可选。
  • json: JSON格式的请求体数据,可选。
  • headers: 请求头,为字典格式,可选。
  • cookies: 请求所需要的cookie,字典或CookieJar,可选。
  • files: 要上传的文件,字典类型,例如{'file': open('report.xls', 'rb')},可选。

以下是对各个参数的使用示例:

  • url: 请求的URL地址。
response = requests.get('http://httpbin.org/get')
  • params: 附加到URL中的查询参数,字典或字节序列,可选。
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('http://httpbin.org/get', params=payload)
  • data: 请求体中的数据,字典、列表元组、字节序列或文件对象,可选。
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('http://httpbin.org/post', data=data)
  • json: JSON格式的请求体数据,可选。
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('http://httpbin.org/post', json=data)
  • headers: 请求头,为字典格式,可选。
headers = {'user-agent': 'my-app/0.0.1'}
response = requests.get('http://httpbin.org/get', headers=headers)
  • cookies: 请求所需要的cookie,字典或CookieJar,可选。
cookies = dict(cookies_are='working')
response = requests.get('http://httpbin.org/cookies', cookies=cookies)
  • files: 要上传的文件,字典类型,例如{'file': open('report.xls', 'rb')},可选。
url = 'http://httpbin.org/post'
files = {'file': open('report.xls', 'rb')}
response = requests.post(url, files=files)

需要注意的是,以上参数取决于实际HTTP请求的需求和API接口的要求,所以并非所有请求都需要全部使用这些参数,比如一般获取网页内容的GET请求,可能只需要提供URL一个参数即可。

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

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

相关文章

vue使用gitshot生成gif

vue使用gitshot生成gif 问题背景 本文将介绍vue中使用gitshot生成gif。 问题分析 解决思路: 使用input组件上传一个视频,获取视频文件后用一个video组件进行播放,播放过程进行截图生成图片数组。 demo演示上传一个视频,然后生…

如何使用Docker部署IT-Tools并结合内网穿透实现公网访问本地工具箱服务

作为程序员,在日常工作中,需要借助一些工具来提高我们工作效率,IT-Tools是为开发人员度身打造的一套便捷在线工具。它提供全面功能,使开发者能以更高效方式完成任务。经由IT-Tools,开发人员能轻松应对各类技术挑战&…

C++之数组

1,概述 所谓数组,就是一个集合,里面存放了相同类型的数据元素 特点1:数组中没干过数据元素都是相同的数据类型 特点2:数组都是连续存放位置组成的 2,一维数组 2.1 一维数组的定义 一维数组定义有三种…

Leetcode583. 两个字符串的删除操作 -代码随想录

题目&#xff1a; 代码(首刷自解 2024年2月29日&#xff09;&#xff1a; class Solution { public:// 动态规划 好像和找最长公共子序列一样&#xff1f;int minDistance(string word1, string word2) {int sz1 word1.size();int sz2 word2.size();// dp initvector<vec…

SD-WAN技术:优化国内外服务器访问的关键

在全球化的商业环境中&#xff0c;企业经常需要在国内访问国外的服务器。然而&#xff0c;由于地理位置和网络架构的限制&#xff0c;这种跨国访问往往会遇到速度慢、延迟高等问题。SD-WAN&#xff08;软件定义广域网&#xff09;技术的兴起&#xff0c;为企业提供了一种新的解…

八股文打卡day24——数据库(1)

面试题&#xff1a;左连接和右连接的区别&#xff1f; 我的回答&#xff1a; 左连接的SQL语句是&#xff1a;左表 left join 右表 on 连接条件&#xff0c;表示以左表为基础&#xff0c;将左表的的所有记录与右表进行连接。即使右表中没有与左表匹配的记录&#xff0c;左连接…

大白话解析LevelDB:TableCache

文章目录 TableCache 的构造函数TableCache::Get在 Cache 中查找指定的 SST从 SST 中查找指定的 Key TableCache::NewIteratorTableCache::Evict TableCache在LevelDB中的作用是管理和缓存SST(Sorted String Tables)的读取。 为了提高读取效率&#xff0c;TableCache会缓存已打…

Linux-Uboot命令

help命令 进入 uboot 的命令行模式后输入“help”或者“&#xff1f;”&#xff0c;然后按下回车即可查看当前 uboot 所支持的命令。 查看某一个命令的帮助信息&#xff1a;&#xff1f;命令名称 或 help命令名称 信息查询命令 常用的和信息查询有关的命令有 3 个…

力扣Hot100

力扣100题easy 1. 两数之和 时间空间复杂度为O(N)&#xff0c;思路是&#xff1a;创建一个哈希表&#xff0c;对于每一个 x&#xff0c;先查询哈希表中是否存在 target - x&#xff0c;然后将 x 插入到哈希表中&#xff0c;即可保证不会让 x 和自己匹配。 class Solution {p…

Cookie、Session和JWT

摘要&#xff1a;Cookie、Session和JWT都不是什么新的技术了&#xff0c;最近用到了就比较和总结下。 我们知道http协议是无状态的&#xff0c;用户登录后如何验证和保存用户状态呢&#xff1f;下面来介绍 1. 使用Cookie和Session验证登录状态 session是保存在服务端的一种数…

STM32串口通信(发送与接收数据)

文章目录 前言一、介绍部分通信接口术语解释 串口通信简介硬件电路电平标准串口参数串口时序USART简介USART框图USRAT基本结构数据帧起始位检测波特率发生器CH340G 二、实例部分使用串口发送数据接线图代码实现重定向printf需要勾上Use MicroLIB中文不乱码方法 串口的发送与接收…

C++ 之LeetCode刷题记录(三十六)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 16. 最接近的三数之和 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你…

题目 1036: [编程入门]带参数宏定义练习

问题描述&#xff1a; 定义一个带参的宏&#xff0c;使两个参数的值互换&#xff0c;并写出程序&#xff0c;输入两个数作为使用宏时的实参。输出已交换后的两个值。 样例输入&#xff1a; 1 2 样例输出&#xff1a; 2 1 问题分析&#xff1a; 无 代码…

Qt篇——QTableWidget常用设置

//表格颜色间隔显示 ui->originDataTable->setAlternatingRowColors(true); //设置表格列数 ui->originDataTable->setColumnCount(3); //设置表格头 QStringList headerList1; headerList1 << QString::from…

LeetCode #2605 从两个数字数组里生成最小数字

题目 给你两个只包含 1 到 9 之间数字的数组 nums1 和 nums2 &#xff0c;每个数组中的元素 互不相同 &#xff0c;请你返回 最小 的数字&#xff0c;两个数组都 至少 包含这个数字的某个数位。 示例 1&#xff1a; 输入&#xff1a;nums1 [4,1,3], nums2 [5,7] 输出&#…

Python 从文件中读取JSON 数据并解析转存

文章目录 文章开篇Json简介Json数据类型Json硬性规则Json数据转化网站Json和Dict类型转换json模块的使用Python数据和Json数据的类型映射json.dumps1.字典数据中含有**存在中文**2.json数据通过缩进符**美观输出**3.对Python数据类型中键进行**排序输出**4.json数据**分隔符的控…

【软件测试】接口调不通排查分析+常遇面试题总结

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、接口调不通&am…

【论文阅读】深度学习在过冷沸腾气泡动力学分割中的应用

Application of deep learning for segmentation of bubble dynamics in subcooled boiling 深度学习在过冷沸腾气泡动力学分割中的应用 期刊信息&#xff1a;International Journal of Multiphase Flow 2023 级别&#xff1a;EI检索 SCI升级版工程技术2区 SCI基础版工程技术3区…

(libusb) usb口自动刷新

文章目录 libusb自动刷新程序Code目录结构Code项目文件usb包code包 效果描述重置reset热拔插使用 END libusb 在操作USB相关内容时&#xff0c;有一个比较著名的库就是libusb。 官方网址&#xff1a;libusb 下载&#xff1a; 下载源码官方编好的库github&#xff1a;Release…

新的一年,如何优化企业库存管理?

随着社会的发展和经济的不断增长&#xff0c;库存管理成为了企业运营中非常重要的一环。库存作为企业的资产之一&#xff0c;直接影响着企业的盈利能力和竞争优势。因此&#xff0c;对企业库存进行科学的分析和管理&#xff0c;成为了确保企业持续稳定发展的必要手段之一。企业…