Python中结合BeautifulSoup调用BscScan API如何拆分返回数据?
BscScan API数据提取解决方案
BscScan API返回的是标准JSON格式数据,无需使用BeautifulSoup做HTML解析,直接处理JSON响应即可快速提取目标字段,你当前的实现把JSON响应当HTML解析,通过p标签提取数据的方式稳定性极差,也不符合API的设计逻辑。
修正后的实现代码如下:
import requests url_base = 'https://api.bscscan.com/api?module=stats&action=tokensupply&contractaddress=' contract = '0x6053b8FC837Dc98C54F7692606d632AC5e760488' # 替换为你自己申请的BscScan API密钥 api_key = 'YourApiKeyToken' url = f"{url_base}{contract}&apikey={api_key}" response = requests.get(url) # 直接解析JSON格式的响应内容 res_data = response.json() # 按固定字段拆分响应内容 if res_data['status'] == '1': # 提取原始总供应量,注意需要除以对应代币的精度(大多数BSC代币精度为18位,可按需调整) total_supply_raw = res_data['result'] total_supply = int(total_supply_raw) / 10**18 print(f"代币总供应量:{total_supply}") else: print(f"请求出错:{res_data['message']}")
BscScan所有公开接口的响应都会固定返回三个顶级字段,可直接按字段名拆分:
status:请求结果状态标识,1代表请求成功,0代表请求失败message:状态说明,请求成功时返回OK,请求失败时返回具体错误原因result:实际业务数据,你需要获取的代币总供应量就存储在该字段内
你之前的运行结果参考:
内容的提问来源于stack exchange,提问作者teco
相关产品推荐
相关产品推荐

