You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用requests获取Tokenview上LTC地址最新交易金额?现有代码返回None

问题原因分析

Tokenview的地址页面交易数据是通过JavaScript动态渲染的,你用requests.get获取的只是页面的静态骨架,并没有包含实际的交易内容,所以BeautifulSoup根本找不到带有input_value类的元素,自然返回None或空列表。

解决方案

方案1:调用Tokenview官方API(推荐)

Tokenview提供了公开API接口,直接调用比网页解析更稳定可靠。你需要先去Tokenview官网申请API密钥,再使用以下代码:

import requests

API_KEY = "你的API密钥"
BASE_URL = "https://services.tokenview.io/vipapi/address/ltc/transactions"

def get_recent_transaction_amount(address):
    params = {
        "address": address,
        "apikey": API_KEY,
        "page": 1,
        "pagesize": 1  # 仅获取最新1条交易
    }
    response = requests.get(BASE_URL, params=params)
    if response.status_code == 200:
        data = response.json()
        if data.get("code") == 0 and data.get("data"):
            latest_tx = data["data"][0]
            amount = latest_tx.get("amount")
            print(f"最新交易金额:{amount} LTC")
            return amount
    print("获取交易数据失败")
    return None

# 使用示例
get_recent_transaction_amount("M8T1B2Z97gVdvmfkQcAtYbEepune1tzGua")

注:具体API端点和返回字段需参考Tokenview官方文档,确保参数与字段匹配。

方案2:优化Selenium实现通用获取

如果不想用API,可以优化Selenium代码,通过通用选择器适配任意地址:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def get_recent_transaction_amount(address):
    url = f"https://ltc.tokenview.io/en/address/{address}"
    driver = webdriver.Chrome()  # 需确保ChromeDriver路径配置正确
    driver.get(url)
    
    try:
        # 等待最新交易的金额元素加载完成
        latest_amount = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located(
                (By.CSS_SELECTOR, ".transaction-item .input_value")
            )
        )
        amount = latest_amount.text.strip()
        print(f"最新交易金额:{amount}")
        return amount
    finally:
        driver.quit()

# 使用示例
get_recent_transaction_amount("M8T1B2Z97gVdvmfkQcAtYbEepune1tzGua")

这里通过CSS选择器定位交易列表第一个元素的金额,只要页面结构不变,就能适配任意地址。

方案3:抓包调用网站内部API

用浏览器开发者工具(F12)抓包,找到页面加载交易数据的内部API接口,直接用requests模拟请求:

import requests

def get_recent_transaction_amount(address):
    # 实际接口需自行抓包确认
    url = "https://ltc.tokenview.io/api/address/transactions"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
        # 需根据抓包结果添加Referer、Cookie等必要请求头
    }
    params = {
        "address": address,
        "page": 1,
        "pageSize": 1
    }
    response = requests.get(url, headers=headers, params=params)
    if response.status_code == 200:
        data = response.json()
        latest_amount = data["list"][0]["amount"]
        print(f"最新交易金额:{latest_amount} LTC")
        return latest_amount
    print("获取失败")
    return None

注:内部API可能随时变更,且可能需要验证Cookie等参数,稳定性不如官方公开API。

内容的提问来源于stack exchange,提问作者Alex is funny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 14:03:11