You need to enable JavaScript to run this app. 如何使用Python爬虫提取10fastfingers平台的个人打字测试数据
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python爬虫提取10fastfingers平台的个人打字测试数据

问题原因

你使用requests+bs4无法获取测试后数据的核心原因是:10fastfingers的打字测试结果属于页面加载完成后通过JavaScript动态渲染的内容,requests只能拉取到初始的静态页面源码,不会执行页面的JS逻辑,自然无法获取到测试结束后才生成的打字速度、准确率这类动态数据。

实现方案

推荐优先使用Selenium自动化工具实现,它可以模拟真实浏览器的操作、执行页面JS逻辑,能直接获取渲染完成后的全量页面内容,对有Python基础的开发者来说上手门槛很低。

步骤1:安装依赖

首先安装需要的工具:

  • 安装selenium库:pip install selenium
  • 新版Selenium支持ChromeDriver自动管理,无需手动下载对应浏览器版本的驱动文件

步骤2:核心实现代码

你可以选择手动完成打字测试后再提取数据,也可以直接用Selenium全流程模拟打字+提取,以下是核心代码示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import pandas as pd

# 初始化Chrome浏览器
driver = webdriver.Chrome()

# 打开英文打字测试页面
driver.get("https://10fastfingers.com/typing-test/english/")

# 预留时间完成打字测试,默认测试时长为60秒,可根据自身需求调整时长
time.sleep(70)

# 提取测试结果,元素ID可通过浏览器F12开发者工具的元素选择器确认
result = {
    "打字速度(WPM)": driver.find_element(By.ID, "wpm").text.strip(),
    "准确率": driver.find_element(By.ID, "accuracy").text.strip(),
    "总击键数": driver.find_element(By.ID, "keystrokes").text.strip(),
    "正确单词数": driver.find_element(By.ID, "correct").text.strip(),
    "错误单词数": driver.find_element(By.ID, "wrong").text.strip()
}

# 打印结果或存入本地表格
print(result)
pd.DataFrame([result]).to_csv("typing_test_result.csv", index=False, encoding="utf-8-sig")

# 关闭浏览器
driver.quit()

优化方案(可选)

如果不想使用自动化工具,也可以通过抓包的方式直接获取结构化数据:完成测试后打开浏览器F12开发者工具的「网络」面板,找到提交测试结果的POST接口,用requests模拟请求该接口即可直接拿到JSON格式的测试数据,运行效率更高,但需要掌握基础的抓包技能。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 16:06:05