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

Python BeautifulSoup抓取BSCScan交易页面数据错误问题求助

BscScan交易数据爬取选择器调整方案

调整说明

两个异常均由选择器定位错误导致,对应调整逻辑如下:

  • 区块号缺失:原有选择器仅匹配到了区块确认数的标签,实际区块号存储在id为ContentPlaceHolder1_spanBlockNumber的a标签中,获取该值后和确认数拼接即可得到完整内容。
  • 接收地址显示哈希:原有选择器匹配到了存储地址哈希的子span,合约名称存储在id为spanToAdd的span下的a标签文本中,调整选择器定位该标签即可获取合约名称。

调整后完整代码

from bs4 import BeautifulSoup
from urllib.request import Request, urlopen

url = 'https://bscscan.com/tx/0x86d46163d35626df273bbed53cbdba26959d8ab7eb536af0f526dfa937c75dde'
headers = {'User-Agent': 'Mozilla/5.0'}

req = Request(url, headers=headers)
html = urlopen(req).read()
soup = BeautifulSoup(html, 'html.parser')

# 调整区块号获取逻辑
block_num = soup.find('a', id='ContentPlaceHolder1_spanBlockNumber').text.strip()
block_conf = soup.find('span', class_='u-label u-label--xs u-label--badge-in u-label--secondary ml-1').text.strip()
blockconf = f"{block_num} {block_conf}"

fromaddr = soup.find('span', id='spanFromAdd').text
# 调整接收地址获取逻辑
toaddr = soup.find('span', id='spanToAdd').a.get_text(strip=True)

transcount = soup.find('span', class_='badge badge-pill badge-secondary align-midle').text
val = soup.find('span', class_='u-label u-label--value u-label--secondary text-dark rounded mr-1').text
transfee = soup.find('span', id='ContentPlaceHolder1_spanTxFee').text

print ("Block Number:   ", str(blockconf))
print("From Address:    " + str(fromaddr))
print ("To Address:      " + str(toaddr))
print ("Transfer Count:  " + str(transcount))
print("Value:           " + str(val))
print("Transaction Fee: " + str(transfee))

运行输出

Block Number:    9428747 792 Block Confirmations
From Address:    0xf3b1c9f3bbc351d90c7a539b26d789af57c869f7
To Address:      PancakeSwap: Router v2
Transfer Count:  8
Value:           0 BNB
Transaction Fee: 0.00529533 BNB ($1.60)

内容的提问来源于stack exchange,提问作者rbutrnz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 12:30:04