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

Python使用BS4抓取poocoin.app网页表格报AttributeError如何解决

报错原因

  • 代码存在工具混用的逻辑问题:你已经启动了Selenium但未使用它获取动态渲染后的页面内容,反而用requests直接发起GET请求拉取静态HTML
  • Poocoin的页面数据是JavaScript动态加载生成的,requests拉取到的原始静态页面里根本不存在你要查找的table元素,因此soup.find()返回None,对空值调用find方法自然抛出AttributeError

修复后的代码

直接使用Selenium获取渲染完成的页面源码传给BeautifulSoup即可,无需额外调用requests:

from selenium import webdriver
from bs4 import BeautifulSoup
import time

# 初始化Chrome浏览器
browser = webdriver.Chrome('C://Python38/chromedriver')
url = "https://poocoin.app/rugcheck/0xe56842ed550ff2794f010738554db45e60730371/top-holders"
browser.get(url)
# 增加等待时间确保页面动态内容加载完成,也可替换为显式等待提升效率
time.sleep(3)

# 直接读取Selenium渲染后的页面源码进行解析
soup = BeautifulSoup(browser.page_source, 'lxml')
t = soup.find('table', class_='table table-bordered table-condensed text-small')
# 增加非空判断避免偶发加载失败导致报错
if t:
    trs = t.find('tbody').find_all('tr')
    for tr in trs[:10]:
        print(list(tr.stripped_strings))
else:
    print("未找到目标表格,请检查页面加载情况或元素选择器是否正确")

browser.quit()

可选优化点

  • 把固定时长的time.sleep替换为Selenium显式等待,指定等待目标表格加载完成后再执行后续逻辑,运行效率更高、稳定性更好
  • 可以定期核对页面元素的类名是否变更,站点前端迭代可能会修改元素class属性,导致选择器失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:18:03