正在尝试使用 python 从 War Thunder 本地主机读取数据

Trying to read data from War Thunder local host with python

基本上我使用 python 将串行数据发送到 arduino,这样我就可以使用游戏中的数据制作移动表盘。这会起作用,因为您可以在游戏中使用 url "localhost:8111" 为您提供这些统计数据的列表。问题是我正在使用 urllib 和 BeautifulSoup,但他们似乎在盲目阅读源代码,没有提供我需要的数据。

当我检查那个页面的元素时,我需要的数据出现了。其他页面似乎建议在 python 中使用 运行 和 HTML 可以解决这个问题,但我没有找到这样做的方法。如有任何帮助,将不胜感激。

您的问题可能是页面元素是动态。 (例如 JavaScript 透露的) 为什么这是个问题?答:您无法访问这些标签或数据。您必须使用 headless/Automated 浏览器(了解有关 selenium 的更多信息)。

然后通过 selenium 进行会话,并按照您想要的方式向 Arduino 提供数据。

总结:如果你检查元素你可以看到标签,如果你去查看源代码 你看不到它。这无法通过 bs4 请求单独解决 .您必须使用一个名为 Selenium 或类似模块的模块。

不是海报,但我一直在和他一起研究这个。我们设法让它工作。如果其他人遇到这个问题,这里是显示我们速度的代码

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://localhost:8111")
time.sleep(1)
while True:
    elements = driver.find_element_by_id("stt-IAS, km/h")
    print(elements.text)

不知道为什么需要 time.sleep,但没有它代码似乎无法工作。

Here 是一个 Python 模块,您可以使用它从 War Thunder 本地主机服务器页面 "indicators" 和 "status" 获取所有飞行器遥测数据.每个页面的内容都是对车辆当前遥测值的静态 JSON 描述。

Python包使用requests模块向localhost服务器查询数据,将返回的JSON数据转换为字典,然后将所有数据合并为一个单一的遥测字典。此数据随后可用于其他 Python 过程,例如数据记录或绘图。