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

网页爬取:无法定位指定span类获取CD账户APY数据,代码返回空列表

解决NerdWallet CD账户页面APY爬取返回空列表的问题

你的代码返回空列表,主要有以下几个原因及对应解决办法:

1. 页面内容动态加载

NerdWallet的CD账户APY数据大概率是通过JavaScript动态渲染的,requests.get()只能获取初始静态HTML,无法加载JS生成的内容,所以找不到目标元素。

解决办法:模拟浏览器加载页面

使用Selenium或Playwright这类工具模拟浏览器行为,执行JS后获取完整渲染的页面。以下是Selenium的示例代码:

首先安装依赖:

pip install selenium webdriver-manager

代码实现:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

url = 'https://www.nerdwallet.com/rates/banking/cd-accounts'

# 初始化Chrome浏览器
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get(url)
# 等待页面完全加载(可根据实际情况调整等待时间)
time.sleep(3)

# 通过CSS选择器定位目标span元素(Selenium不支持直接传多个类名,用CSS选择器语法)
apy_spans = driver.find_elements(By.CSS_SELECTOR, "span._1f39sH._24b0kK.DFVVwC")

# 提取并打印APY信息
for span in apy_spans:
    print(span.text)

# 关闭浏览器
driver.quit()

2. 动态生成的类名不可靠

你使用的_1f39sH _24b0kK DFVVwC这类类名,很可能是前端框架(如React)压缩生成的动态类名,页面更新后可能会变化,导致定位失效。

解决办法:改用稳定的定位方式

比如通过元素的文本特征、父容器结构或自定义属性定位:

# 示例:用XPath定位包含百分比(APY特征)的span元素
apy_elements = driver.find_elements(By.XPATH, "//span[contains(text(), '%') and contains(@class, 'DFVVwC')]")

3. 网站反爬机制拦截

部分网站会检测非浏览器请求,返回不完整内容。模拟浏览器请求(如上述Selenium方案)可绕过大部分基础反爬,若仍被拦截,可尝试添加代理、调整请求间隔模拟人类操作。

更高效的方案:直接调用API

打开浏览器开发者工具(F12),切换到「Network」标签,刷新页面后查找返回APY数据的XHR/Fetch请求,直接调用对应API接口获取JSON格式数据,比模拟浏览器更高效。例如:

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    'Referer': 'https://www.nerdwallet.com/rates/banking/cd-accounts'
}
# 替换为实际找到的API接口URL
api_url = 'https://api.nerdwallet.com/xxx/cd-accounts'
response = requests.get(api_url, headers=headers)
data = response.json()

# 解析JSON提取APY信息
for item in data.get('accounts', []):
    print(f"银行:{item.get('bank_name')},APY:{item.get('apy')}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:30:24