Python 请求:从有效负载中提取数据

Posted

技术标签:

【中文标题】Python 请求:从有效负载中提取数据【英文标题】:Pyton requests: Extracting data from payload 【发布时间】:2021-12-31 14:47:39 【问题描述】:

这是我在这里的第一个问题。

目前我正在研究 Python 请求模块。我正在尝试自动化我需要传递 csrf 令牌的任务。 csrf 令牌可以在先前请求的负载中找到。

如何从 Payload 中提取价值?

示例负载:

值1:ABCD

值2:EFGH

csrf_token:我正在寻找的令牌

value3: 假

对不起,如果这是一个愚蠢或简单的问题,但我现在无法解决。

感谢您的帮助!

【问题讨论】:

这能回答你的问题吗? Passing csrftoken with python Requests @RoseGod 我不这么认为。在网页内容中,我可以找到 2 个不具有相同值的 csrf 令牌,我认为我需要从有效负载中选择一个。或者我可以只使用内容中的其中一个吗? 什么是示例有效负载真的吗? 您只是在显示一些文本。是 JSON 格式吗?不要试图为我们解释;向我们展示真实的细节。你改变的越少越好。见How to Ask。 【参考方案1】:

以下是您可能要查找的数据所在位置的一些示例。

import requests


response = requests.get('http://some_url')
# raise an exception if the status  code != 200
response.raise_for_status()

# the contents of the response. (bytes)
contents = response.contents

# the contents of the response if the contents are 
# formatted as JSON. (dictionary)
contents = response.json()

# the headers of the response. (dictionary)
headers = response.headers

# You also have to consider if you are using the correct HTTP protocol
payload = 
response = requests.put('http://some_url', json=payload)
response = requests.post('http://some_url', json=payload)

# the responses are going to function just like when using the "get" protocol

【讨论】:

首先,谢谢!与此同时,我环顾四周并从页面内容中提取了 csrf 令牌,但它不起作用。它给了我错误 b'"error":"CSRF Token mismatch"' 正如我上面所说,我认为正确的 csrf 令牌位于请求表单数据(有效负载)中。有没有办法从那里提取它? 我需要确切了解您要获取的内容。您在“有效载荷”数据之前提到“表单”数据。这可能是一个帖子而不是一个获取。也许您正在寻找的数据封装在对帖子的响应中。 对不起,我现在发现的代码有误。现在能够在 html 中找到令牌。感谢您回答我并尝试提供帮助:)

以上是关于Python 请求:从有效负载中提取数据的主要内容,如果未能解决你的问题,请参考以下文章

python怎么从一堆数据中取数

python jwt中令牌过期时如何提取jwt令牌有效负载

Python请求与curl

从 .opus 转换为 .wav

使用 JMeter 中的 CSV 数据集配置多次运行 HTTP 请求后提取有序结果

如何从express中的PATCH请求获取请求有效负载