使用bs4的BeautifulSoup从HTML页面提取指定数值的实现方法
BeautifulSoup 提取目标数值解决方案
核心调整思路
- 原有代码定位的是「Tokens Transferred」标题所在的容器,未命中实际存储数值的转账记录区域
- BSC站点有基础反爬限制,请求时需要添加UA头伪装浏览器,避免返回403错误
- 两个目标数值都存储在id为
wrapperContent的列表容器下的两个<li>子节点中
完整可运行代码
import requests from bs4 import BeautifulSoup # 添加请求头伪装浏览器,规避站点反爬 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" } test_url = 'https://bscscan.com/tx/0x0467727ae96fc0226bc876f0d3aa2332f1da3cec9599e52c683c74f60ec01409' page = requests.get(test_url, headers=headers) soup = BeautifulSoup(page.content, "html.parser") # 定位转账记录容器 transfer_list = soup.find('ul', id='wrapperContent') items = transfer_list.find_all('li', class_='media') # 提取第一个数值 6.172119857741811412 first_val_span = items[0].find('span', {'data-toggle': 'tooltip'}) first_val = first_val_span.get_text(strip=True).split(' ')[0] # 提取第二个数值 721,073.7 second_val_span = items[1].find_all('span', class_='mr-1')[-3] second_val = second_val_span.get_text(strip=True) print("WBNB数量:", first_val) print("DXT数量:", second_val)
提取逻辑说明
- 第一笔WBNB转账的数值包装在带有
data-toggle="tooltip"属性的span标签中,文本内容自带后续的美元价格括号,按空格分割取第一段即可得到纯数值 - 第二笔DXT转账的数值在「For」关键词后的第三个
mr-1类span中,直接提取文本并去除首尾空白即可得到目标数值
内容的提问来源于stack exchange,提问作者user3702643
相关产品推荐
相关产品推荐

