我的HTML文件如何将JavaScript结果传递给调用它的Python脚本?

How can my HTML file pass JavaScript results back to a Python script that calls it?

本文关键字:调用 Python 脚本 文件 HTML 结果 JavaScript 我的      更新时间:2023-09-26

我有一个python脚本,这个python脚本将调用本地存储在计算机上的html文件(即网页)。html文件进行一些计算(jquery、javascript等),并将结果传递回python脚本。我不想改变设置(python脚本调用html-file,结果被传递回python-script),所以请不要问为什么。

谁能告诉我怎么解决这个问题?我如何将结果从html-file传递到调用python函数?这困扰了我两个星期了。谢谢!

如果你想在HTML文件中执行javascript,你需要在Python中实现一个完整的javascript运行时(当然可能有其他语言的现有运行时或移植)。HTML文件不是可执行文件,除了浏览器,大多数环境也没有它的解释器。

如果你能以某种方式将javascript从HTML中分离出来(也就是说,如果它不以任何方式依赖于DOM),你可能能够使用类似SpiderMonkey shell的东西来执行javascript并在Python中读取它的标准输出。

如果没有,您将需要一个完整的浏览器来解释HTML和javascript,然后您需要以某种方式读取它的(可视)输出,这可能非常复杂。

http://nodejs.org/
删除与dom有关的任何内容,并使用node从命令中运行它,然后从node调用Python脚本并从JS中输出,然后将输出放到某个地方。

如果不使用外部库,这将很难完成。首先需要一个HTML解析器,这样才能真正理解HTML。然后,您需要一个Javascript解析器/词法分析器/引擎,以便进行实际的计算。我想在Python中实现这一点是可能的,但我建议寻找一个已经实现了这一点的开源项目。然后,您必须解析/lex/解释javascript并将结果传递给python。

总而言之,我认为将Javascript计算移植到Python更容易,但这只是我的看法。

当你说你的Python脚本"调用" HTML文件时,你并没有确切地说明你的意思,但假设你的意思是Python获取HTML文件的内容,你将需要Python来解释并运行其中的JavaScript。

我写了一个Python脚本,登录到我的互联网银行提供商(它大量使用JavaScript),我最终不得不使用Selenium来控制一个实际的web浏览器来为我解析JavaScript,然后通过Selenium查询渲染网页的DOM。

对我的问题的回答提到了几个Python的HTML解析器。我同意James的答案——从HTML文件中获取JavaScript,并使用node.js运行它。