【问题标题】:How can my HTML file pass JavaScript results back to a Python script that calls it?我的 HTML 文件如何将 JavaScript 结果传递回调用它的 Python 脚本?
【发布时间】:2011-11-01 18:50:46
【问题描述】:

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

谁能告诉我如何解决这个问题?如何将结果从 html 文件传递​​给调用 python 函数?自从两周以来,这一直困扰着我。 谢谢!

【问题讨论】:

    标签: javascript python html javascript-engine


    【解决方案1】:

    当你说你的 Python 脚本“调用”HTML 文件时,你并没有具体说明你的意思,但是假设你的意思是 Python 获取 HTML 文件的内容,你将需要 Python 来解释和运行从其中的 JavaScript 开始。

    我编写了一个 Python 脚本来登录我的网上银行服务提供商(它大量使用 JavaScript),最后我使用having to use Selenium 来控制一个实际的网络浏览器来为我解析 JavaScript,然后查询渲染的 DOM通过 Selenium 的网页。这绝对不是微不足道的。

    我的问题的答案提到了一些 Python 的 HTML 解析器。不过我同意James’ answer — 从 HTML 文件中获取 JavaScript 并使用 node.js 运行它。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        如果您想在 HTML 文件中执行 javascript,您需要在 Python 中实现完整的 javascript 运行时(当然,可能存在现有的或来自其他语言的端口。)HTML 文件不是可执行文件,并且大多数环境也没有解释器,除了浏览器。

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

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

        【讨论】:

          【解决方案4】:

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

          总而言之,我会说将 Javascript 计算移植到 Python 更容易,但这就是我。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-11-22
            • 2022-01-12
            • 1970-01-01
            • 2013-01-07
            • 2014-04-22
            相关资源
            最近更新 更多