如何通过请求从div或类获取文本

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

我正在编写一个脚本,用于定位并打印该网站最近交易的交易金额https://ltc.tokenview.io/en/address/M8T1B2Z97gVdvmfkQcAtYbEepune1tzGua

这是我正在尝试使用的代码。

def getRecentTransaction(address):
    r = requests.get(f'https://ltc.tokenview.io/en/address/{address}')
    time.sleep(5)
    soup = BeautifulSoup(r.text, 'html.parser')
    amount = soup.find(class_="input_value")
    amountStuff = amount.text.strip()
    print(amountStuff)

然而这只是返回“none”。现在我知道网站上有多个“输入值”类,但是当我找到所有类时,我得到了“[]”。我能够检索文本的唯一方法是使用 selenium 的 Xpath 函数。但是,我正在尝试编写此内容,以便人们只需输入地址即可获取最近的交易金额。 Xpath 方法太具体了。

如有任何帮助,我们将不胜感激!

python web-scraping beautifulsoup python-requests
1个回答
0
投票

您在页面上看到的数据是在javascript的帮助下加载的,因此BeautifulSoup看不到它。要获取数据,您可以执行以下操作:

import requests

api_url = "https://ltc.tokenview.io/api/address/balancetrend/ltc/M8T1B2Z97gVdvmfkQcAtYbEepune1tzGua"

data = requests.get(api_url).json()

# print most recent:
print(data["data"][0])

打印:

{'2024-01-06': '2504667.37296058'}

最近交易:

import re

import requests

url = "https://ltc.tokenview.io/en/address/M8T1B2Z97gVdvmfkQcAtYbEepune1tzGua"
html_text = requests.get(url).text

inp, out = re.search(r'value:"([^"]+).*?value:"([^"]+)', html_text).groups()
print(f"{inp=} {out=}")

打印:

inp='0.02387814' out='0.02319739'
© www.soinside.com 2019 - 2024. All rights reserved.