Python 中如何使用requests模块发布表单数据

 更新时间:2023年06月19日 11:40:29   作者:迹忆客  
requests 库是 Python 的主要方面之一,用于创建对已定义 URL 的 HTTP 请求,本篇文章介绍了 Python requests 模块,并说明了我们如何使用该模块在 Python 中发布表单数据,感兴趣的朋友跟随小编一起看看吧

本篇文章介绍了 Python requests 模块,并说明了我们如何使用该模块在 Python 中发布表单数据。

使用 requests 模块在 Python 中发布表单数据

Python 可用于访问网页,也可用于向网页发布内容。

无论是否有httplib、urllib、httplib2等不同的模块,Python中的requests模块是最简单的,可以编写强大的涉及GET和POST方法的程序。

requests 库是 Python 的主要方面之一,用于创建对已定义 URL 的 HTTP 请求。

POST请求方式介绍

万维网 HTTP 支持 POST 请求方法。 在考虑格式时,POST 请求方法请求 Web 服务器接受请求消息正文中包含的数据,显然是存储它们。

我们经常用它来上传文件或提交最终的网络表单。 例如,post() 向指定的 URL 发送 POST 请求。 当我们需要向服务器发送一些数据时,我们也可以使用它。

  • 它对数据长度没有任何限制,根据需要设置。
  • 它不存在于浏览器历史记录中。
  • 它永远不会被缓存。
  • 它不能是书签。

在 Python 中安装 requests 模块

可以使用以下命令安装使用 post() 方法所需的请求模块:

python -m pip install requests

或者

pip install requests

如果 pipenv 管理 Python 包,我们可以使用以下命令。

pipenv install requests

安装 requests 模块后,可以按如下方式在程序中导入和使用它:

import requests

现在,如何使用 requests.post() 方法? 它的语法是什么? 下面一起来了解一下吧。

语法:

requests.post(url, data={key: value}, json={key: value}, args)

在这里,args 等于 0 个或多个命名参数作为以下参数:

参数说明
url请求的URL是一个重要的部分。
data可选。 字典、元组列表、字节或文件对象被发送到指定的 URL。
json可选。 要定向到指定 URL 的 JSON 对象。
files可选。 要传递到指定 URL 的文件目录。
allow_redirects可选。 启用或禁用重定向的布尔值。 默认值为 True,表示允许重定向。
auth可选。 启用特定 HTTP 身份验证的元组。 默认值为无。
cert指定证书文件或密钥的字符串或元组。 可选,默认值为 None。
cookies发送到指定 URL 的 Cookie 字典,可选,默认值为 None。
headers可选,默认无,要发送到定义的 URL 的 HTTP 标头字典。
proxies可选,默认无,代理 URL 的协议字典。
stream响应的布尔值指示,无论是 False(已下载)还是 True(流式传输)。 可选,默认为 False。
timeout可选,一个数字,指示等待客户端建立连接和/或发送响应的时间。 默认值为无。 这意味着请求将继续,直到连接关闭。
verify一个布尔值或字符串指示,用于验证/不验证服务器的 TLS 证书。 选修的。 默认值是true。

post() 方法的应用

下面的代码围栏演示了 post() 方法的用法,用户通过 post() 方法将数据发布到 httpbin 网站,并获得有关发布方式的响应。

import requests
values = {'username':'user','password':'test'}
result = requests.post('https://httpbin.org/post',data = values)
print(result.text)

输出:

收到一个响应对象,其中包含很多信息。 首先,具有用户名和密码的键和值的表单对象是测试。 然后标头对象包含一些属性:Next、JSON、origin 和 URL。

要发布多部分编码的文件,请通过使用 post() 方法的文件属性将文件发送到服务器来发出多部分 POST 请求。

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

输出:

作为输出,返回一个空数据对象并获得文件对象,文件属性的值为文件的内容(在工作目录中创建的 test.txt 文件的内容,即测试文本)。

要在会话中发出 POST 请求,请将 cookie 设置为 URL,然后再次发出请求以评估是否设置了 cookie。 当用户需要在所有请求中发送相同的数据时,会话也很有用。 例如:

import requests
s = requests.Session()
s.cookies.update({'month-visit': 'July'})
request01 = s.get('http://httpbin.org/cookies')
print(request01.text)
# outputs details on the "month-visit" cookie
request02 = s.get('http://httpbin.org/cookies', cookies={'year-visit': '2022'})
print(request02.text)
# outputs details on "month-visit" and "year-visit" cookie
request03 = s.get('http://httpbin.org/cookies')
print(request03.text)
# outputs details on the "month-visit" cookie

输出:

在输出中,月访问会话 cookie 随所有三个请求一起传递。 但是年访问 cookie 仅在第二次请求期间传递。

第三个请求中没有年访问cookie。 因此,这证实了在单个请求上设置的 cookie 或其他数据不会与其他会话请求一起传递。

考虑到 post() 的好处,它比 GET 方法更安全,因为用户输入的信息在 URL 查询字符串或服务器日志中永远不可见。

我们可以发送的数据量有更大的限制,一个人可以发送文本或二进制数据,例如使用 POST 方法上传文件。

到此这篇关于Python 中如何使用requests模块发布表单数据的文章就介绍到这了,更多相关Python使用requests模块发布表单数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python之数字图像处理方式

    python之数字图像处理方式

    这篇文章主要介绍了python之数字图像处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Python存储List数据到文件(text/csv/excel)几种常见方法

    Python存储List数据到文件(text/csv/excel)几种常见方法

    在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中,下面这篇文章主要给大家介绍了关于Python存储List数据到文件(text/csv/excel)的几种常见方法,需要的朋友可以参考下
    2024-02-02
  • Python中的“==“与“is“深入解析与Vibe Coding时代的优化实践

    Python中的“==“与“is“深入解析与Vibe Coding时代的优化实践

    ==”和“is”在Python中各有用途,前者比较值,后者比较对象标识,在Vibe Coding时代,优化它们的用法能提升代码性能和可靠性,这篇文章主要介绍了Python中的“==“与“is“深入解析与Vibe Coding时代的优化实践,需要的朋友可以参考下
    2026-06-06
  • python ssh 执行shell命令的示例

    python ssh 执行shell命令的示例

    这篇文章主要介绍了python ssh 执行shell命令的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-09-09
  • 如何使用Python对日期和时间进行排序

    如何使用Python对日期和时间进行排序

    本文将教我们如何使用Python对日期和时间进行排序,我们还将学习datetime模块和sorted方法,本文结合示例代码给大家介绍的非常详细,需要的朋友参考下吧
    2023-06-06
  • Python判断一个数是否为质数的3种方法(超详细)

    Python判断一个数是否为质数的3种方法(超详细)

    一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7等),换句话说就是该数除了1和它本身以外不再有其他的因数,下面这篇文章主要给大家介绍了关于利用Python判断一个数是否为质数的3种方法,需要的朋友可以参考下
    2024-09-09
  • Python3标准库glob文件名模式匹配的问题

    Python3标准库glob文件名模式匹配的问题

    glob的模式规则与re模块使用的正则表达式并不相同。实际上,glob的模式遵循标准UNIX路径扩展规则。只使用几个特殊字符来实现两个不同的通配符和字符区间。这篇文章主要介绍了Python3标准库glob文件名模式匹配的知识,需要的朋友可以参考下
    2020-03-03
  • 使用matplotlib绘制热图(heatmap)全过程

    使用matplotlib绘制热图(heatmap)全过程

    这篇文章主要介绍了使用matplotlib绘制热图(heatmap)全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • python反射机制内置函数及场景构造详解

    python反射机制内置函数及场景构造详解

    这篇文章主要为大家介绍了python反射机制内置函数及场景构造示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • python得到电脑的开机时间方法

    python得到电脑的开机时间方法

    今天小编就为大家分享一篇python得到电脑的开机时间方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10

最新评论