gpt4 book ai didi

python - 在 Python 中创建 POST 请求

转载 作者:太空宇宙 更新时间:2023-11-04 04:02:09 24 4
gpt4 key购买 nike

完全是 Python 的新手,我正试图陷入困境,但我正在为请求而苦苦挣扎。我为一个小型加密货币项目运行一个节点,并尝试创建一个 python 脚本,该脚本可以抓取我的钱包值并每天将其电报给我一次,我已经管理了电报机器人并且我已经使用 BeautifulSoup 练习提取值来源很好,它只是收到一个包含我的余额的响应,这让我很沮丧。

这是我的余额的 URL:https://www.hpbscan.org/address/0x7EC332476fCA4Bcd20176eE06F16960b5D49333e/

值明显改变了,所以我不认为我可以只对上面的页面做一个获取请求并将它解析成漂亮的汤,所以我加载了开发者工具,看到有一个 post 请求:

方法:发布

网址: https://www.hpbscan.org/HpbScan/addrs/getAddressDetailInfo

请求 header :
主办单位:www.hpbscan.org
用户代理:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
接受:/
接受语言:en-GB,en;q=0.5
接受编码:gzip、deflate、br
X-Requested-With: XMLHttpRequest
内容类型:application/json;charset=utf-8
内容长度:46
DNT:1
连接:保持事件状态
推荐人:https://www.hpbscan.org/address/0x7EC332476fCA4Bcd20176eE06F16960b5D49333e/
用法:无缓存
缓存控制:无缓存

请求正文:[“0x7EC332476fCA4Bcd20176eE06F16960b5D49333e”]

响应(至少在浏览器中)是 JSON 格式的数据,确实包含我需要的余额。

这是我到目前为止尝试重新创建上述请求的地方:

import requests
import json

url = "https://www.hpbscan.org/HpbScan/addrs/getAddressDetailInfo"
payload = '["0x7EC332476fCA4Bcd20176eE06F16960b5D49333e"]'
headers = """
'Host': 'www.hpbscan.org'
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0'
'Accept': '*/*'
'Accept-Language': 'en-GB,en;q=0.5'
'Accept-Encoding': 'gzip, deflate, br'
'X-Requested-With': 'XMLHttpRequest'
'Content-Type': 'application/json;charset=utf-8'
'Content-Length': '46'
'DNT': '1'
'Connection': 'keep-alive'
'Referer': 'https://www.hpbscan.org/address/0x7EC332476fCA4Bcd20176eE06F16960b5D49333e/'
'Pragma': 'no-cache'
'Cache-Control': 'no-cache'
"""

data = requests.post(url, data=payload, headers=headers)
print(data.text)

我以前从未使用过请求,所以我有点一头雾水,我尝试根据我能看到的其他人所做的事情来摆弄一些东西,但没有用,目前我收到“AttributeError:” str' 对象没有属性 'items'。

我想这可能是因为我没有正确指定请求 header 和正文,或者可能是因为响应是我的代码无法理解的 json 格式?

任何帮助将不胜感激:)

最佳答案

您应该将“标题”从字符串更改为字典。这是您的最终代码:

import requests
import json

url = "https://www.hpbscan.org/HpbScan/addrs/getAddressDetailInfo"
payload = '["0x7EC332476fCA4Bcd20176eE06F16960b5D49333e"]'
headers = {
'Host': 'www.hpbscan.org',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
'Accept': '*/*',
'Accept-Language': 'en-GB,en;q=0.5',
'Accept-Encoding': 'gzip, deflate, br',
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/json;charset=utf-8',
'Content-Length': '46',
'DNT': '1',
'Connection': 'keep-alive',
'Referer': 'https://www.hpbscan.org/address/0x7EC332476fCA4Bcd20176eE06F16960b5D49333e/',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache'}

data = requests.post(url, data=payload, headers=headers)
print(data.text)

关于python - 在 Python 中创建 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58053273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com