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

如何获取BSCScan指定代币地址最新DEX交易记录并转为pandas DataFrame

实现方案汇总

1. Selenium tbody元素转pandas DataFrame实现

你获取到tbody对象后,可通过遍历行、列元素提取数据后生成DataFrame,完整代码修改如下:

import pandas as pd
from selenium import webdriver
import time

PATH = 'C:/Users/XX/Downloads/chromedriver_win32/chromedriver.exe'
driver = webdriver.Chrome(PATH)
# 隐式等待避免元素未加载完成
driver.implicitly_wait(10)

driver.get('https://bscscan.com/token/0x20de22029ab63cf9a7cf5feb2b737ca1ee4c82a6#tokenTrade')
print(driver.title)

# 等待表格加载完成
time.sleep(2)
tbody = driver.find_element_by_css_selector("tbody")
# 提取所有行元素
tr_list = tbody.find_elements_by_tag_name("tr")
# 定义表头,和BSCScan交易列表列对应
columns = ["交易哈希", "区块", "时间戳", "交易类型", "价格", "交易数量", "总价值", "买入方", "卖出方", "交易平台"]
data = []
for tr in tr_list:
    td_list = tr.find_elements_by_tag_name("td")
    # 提取每一列的文本内容
    row = [td.text.strip() for td in td_list]
    if row:
        data.append(row)
# 生成DataFrame
df = pd.DataFrame(data, columns=columns[:len(data[0])])
print(df)
# 可直接导出为csv
df.to_csv("bsc_dex_trades.csv", index=False, encoding="utf-8-sig")

driver.close()

注意:该方案只能获取当前分页的交易数据,如需获取全量数据需要额外实现分页点击逻辑,同时要注意BSCScan的反爬机制可能会触发人机验证。

2. 更高效的BSCScan官方API方案

BSCScan官方提供了公开API可直接获取代币交易数据,无需爬虫,稳定性更高:

  • 你需要先在BSCScan官网注册账号获取免费API Key
  • 调用接口核心参数如下:
    module=account
    action=tokentx
    contractaddress=你的代币合约地址
    startblock=起始区块号
    endblock=结束区块号
    sort=asc
    apikey=你申请的API Key
    
  • 接口返回JSON格式数据,可直接解析后生成DataFrame,免费版调用限制为每秒5次,单日最高10万次调用,满足普通使用需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 19:21:03