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

Python抓取TypeRacer打字测试结果无输出问题排查求助

问题排查及解决方案

问题原因

  • 你要提取的div.replayWord元素是页面加载完成后通过JavaScript动态渲染生成的,requests库只能获取未执行JS的初始静态HTML,返回的内容中不存在对应元素,因此没有输出。
  • 你可以在原有代码中添加print(page.text),搜索返回的文本内容,验证是否存在replayWord相关标签。

解决方法

推荐使用支持JavaScript渲染的工具抓取,以下是Selenium的示例实现:

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

# 配置浏览器参数
chrome_options = Options()
chrome_options.add_argument("--headless=new")  # 无头模式,不弹出浏览器窗口
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36")

n = 798
url = f"https://data.typeracer.com/pit/result?id=|tr:_cephas_|{n}"

driver = webdriver.Chrome(options=chrome_options)
driver.get(url)
time.sleep(2)  # 等待页面渲染完成,可替换为显式等待提升稳定性

soup = BeautifulSoup(driver.page_source, 'lxml')
for item in soup.select("div.replayWord"):
    print(item.get_text(strip=True))

driver.quit()

优化建议

  • 可将固定等待的time.sleep(2)替换为Selenium显式等待,指定等待div.replayWord元素加载完成再解析,避免网络波动导致抓取失败。
  • 也可以通过浏览器开发者工具的网络面板,找到返回打字数据的后端接口,直接请求接口获取结构化数据,无需渲染整个页面,效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:15:04