如何通过请求获取json数据

问题描述 投票:0回答:1

我正在尝试编写的当前代码是确定一个人最近的加密交易是否是他们接收资金或发送资金,以及他们是否发送了多少钱。

我当前编写的代码是

def getRecentTransactionInfo(cryptoabbr, address):

    url = f"https://{cryptoabbr}.tokenview.io/en/address/{address}"
    html_text = requests.get(url).text

    inp, out = re.search(r'value:"([^"]+).*?value:"([^"]+)', html_text).groups()
    print(inp) # This prints the amount sent to the wallet if they were the output 

这会打印交易中发送和接收的金额,但不会说明是谁拥有这些值。我一直无法找到检索数据的方法。

我用来测试的链接是:“https://ltc.tokenview.io/en/address/M8T1B2Z97gVdvmfkQcAtYbEepune1tzGua”

网站上的输入是发送了多少,输出是收到了多少。我不确定在哪里可以找到数据,但我相信它位于我用来获取输入输出量的 json 中。

json python-3.x web-scraping python-requests
1个回答
0
投票

要获得第一笔交易,您可以使用例如

js2py
来解析页面内嵌入的 javascript 数据:

import re

import js2py
import requests


def getRecentTransactionInfo(cryptoabbr, address):
    url = f"https://{cryptoabbr}.tokenview.io/en/address/{address}"
    html_text = requests.get(url).text

    js_func = re.search(r"window\.__NUXT__=(\(.*?\)\);)", html_text).group(1)

    data = js2py.eval_js(js_func)

    # return first transaction:
    return data["data"][1]["sourceData"][0]["txs"][0]


print(getRecentTransactionInfo("ltc", "M8T1B2Z97gVdvmfkQcAtYbEepune1tzGua"))

打印:

{
    "block_no": 2607927,
    "confirmations": 4359,
    "fee": "0.0000113",
    "height": 2607927,
    "index": 800,
    "inputCnt": 1,
    "inputs": [
        {
            "address": "LaMKADY7ozZXt7BuLogijtwJzNEXy42fGv",
            "input_no": 0,
            "received_from": {
                "output_no": 1,
                "txid": "b1efc2174229b547e2c44e1823ccbb18252d2ad9ab7296ba52e5093f18d6e211",
            },
            "value": "0.02387814",
        }
    ],
    "network": "LTC",
    "outputCnt": 2,
    "outputs": [
        {
            "address": "LaMKADY7ozZXt7BuLogijtwJzNEXy42fGv",
            "output_no": 0,
            "value": "0.02319739",
        },
        {
            "address": "M8T1B2Z97gVdvmfkQcAtYbEepune1tzGua",
            "output_no": 1,
            "value": "0.00066945",
        },
    ],
    "time": 1704176352,
    "txid": "3cad38d66fdb1a40f20c82f0f55211a75bd8720bc2c71a286af32170f56eae9b",
    "type": "tx",
}
© www.soinside.com 2019 - 2024. All rights reserved.