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

使用Python的bs4和requests爬取Klaytn Scope代币余额表遇问题求助

解决Klaytn Scope代币余额数据爬取问题

直接用requests获取页面HTML再解析的方式行不通,因为Klaytn Scope的代币余额数据是前端通过异步API动态加载的,静态HTML里只有页面框架,没有实际的表格内容,所以BeautifulSoup找不到目标元素。

正确的解决方法:直接调用数据接口

通过浏览器开发者工具(F12)的Network面板筛选XHR请求,可以找到加载代币余额的官方API接口,直接请求该接口获取结构化数据即可。

1. 确定API接口

目标账户的代币余额接口为:
https://scope.klaytn.com/api/v1/accounts/0xb5471a00bcc02ea297df2c4a4fd1d073465c662b/token-balances
接口支持分页(page、size参数),默认返回20条数据,如需全量数据可调整参数或循环分页请求。

2. 编写请求代码

直接请求API获取JSON格式数据,无需解析HTML:

import requests
import pandas as pd
import urllib3

urllib3.disable_warnings()

# 目标API地址
api_url = "https://scope.klaytn.com/api/v1/accounts/0xb5471a00bcc02ea297df2c4a4fd1d073465c662b/token-balances"

# 构造请求头,模拟浏览器请求
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
}

# 发送GET请求
response = requests.get(api_url, headers=headers, verify=False)
data = response.json()

# 提取代币余额数据并转为DataFrame
token_balances = data.get("items", [])
df = pd.DataFrame(token_balances)

# 按需筛选展示核心字段
print(df[["symbol", "name", "balance", "decimal"]])

3. 额外说明

  • 该API返回结构化JSON数据,包含代币符号、名称、余额、小数位数等核心信息,比解析HTML更可靠高效。
  • 如需获取更多数据,可添加分页参数,比如params={"page": 2, "size": 50}来获取第二页的50条数据。
  • 保持请求头的User-Agent字段,避免被服务器识别为爬虫拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:10:17