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

如何用Selenium从10FastFingers提取完整待输入单词列表?

解决10FastFingers英文打字测试页面单词抓取问题

问题原因

网站会将未进入可视区域的单词通过CSS隐藏,使用element.text只能获取可见文本,导致未显示的单词返回空白字符串。

解决方案

方法1:获取元素的textContent属性

textContent属性会返回元素的所有文本内容,无论是否可见。修改代码如下:

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://10fastfingers.com/typing-test/english")

# 等待弹窗加载完成后拒绝Cookie
WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "CybotCookiebotDialogBodyButtonDecline"))
).click()

# 等待单词容器加载完成
WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "row1"))
)

word_list = []
words = driver.find_elements(By.CSS_SELECTOR, "#row1>span[wordnr]")
for word in words:
    # 获取所有文本并去除空白
    word_text = word.get_attribute("textContent").strip()
    if word_text:
        word_list.append(word_text)

print(word_list)
print(f"共抓取到{len(word_list)}个单词")

方法2:直接提取整个单词容器的文本并拆分

更简洁高效的方式:直接获取单词容器的全部文本,按空格拆分得到完整单词列表:

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://10fastfingers.com/typing-test/english")

# 等待并点击拒绝Cookie
WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "CybotCookiebotDialogBodyButtonDecline"))
).click()

# 等待单词容器加载完成
row1 = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "row1"))
)

# 提取所有文本并按空格拆分
word_list = row1.get_attribute("textContent").split()

print(word_list)
print(f"共抓取到{len(word_list)}个单词")

补充说明

  • 使用显式等待替代固定延时,能避免页面未加载完成导致的元素定位失败问题,稳定性更强。
  • 两种方法均可抓取到全部近300个单词,方法2代码更简洁,执行效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 18:30:39