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

使用Selenium爬取重Java网站返回空值的问题如何解决

Selenium爬取动态页面空值问题解决

核心错误原因

  • find_elements_by_class_name仅支持传入单个类名,你输入的多个空格分隔的类名会被判定为一个整体类名,无法匹配到对应元素
  • 目标页面是JavaScript动态渲染的,页面加载完成后目标数据还需要异步请求渲染,直接调用查找方法时元素还未生成
  • find_elements返回的是元素对象列表,直接打印不会输出文本内容,需要调用元素的.text属性取值

修正后可运行代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化浏览器
driver = webdriver.Chrome()
driver.get("https://explorer.helium.com/accounts/13pm9juR7WPjAf7EVWgq5EQAaRTppu2EE7ReuEL9jpkHQMJCjn9")

try:
    # 显式等待10秒,直到目标元素加载完成
    target_element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located(
            # 多类名匹配改用CSS选择器,类名前加.,空格替换为.
            (By.CSS_SELECTOR, '.text-base.text-gray-600.mb-1.tracking-tight.w-full.break-all')
        )
    )
    # 提取元素文本内容
    earnings = target_element.text
    print(earnings)
finally:
    # 保证无论是否报错都关闭浏览器
    driver.quit()

额外优化建议

如果后续页面类名发生变更导致定位失效,可以改用xpath结合文本特征定位,或者先定位父级固定容器再向下查找目标元素,提升代码稳定性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:09:04