我有一个python 脚本,这个python 脚本将调用本地存储在计算机上的html 文件(即网页)。html 文件进行一些计算(jquery、javascript 等)并且应该将结果传回给 python 脚本。我不想更改设置(python 脚本调用 html 文件并将结果传递回 python 脚本)所以请不要问为什么。
谁能告诉我如何解决这个问题?如何将结果从 html 文件传递给调用 python 函数?自从两周以来,这一直困扰着我。谢谢!
我有一个python 脚本,这个python 脚本将调用本地存储在计算机上的html 文件(即网页)。html 文件进行一些计算(jquery、javascript 等)并且应该将结果传回给 python 脚本。我不想更改设置(python 脚本调用 html 文件并将结果传递回 python 脚本)所以请不要问为什么。
谁能告诉我如何解决这个问题?如何将结果从 html 文件传递给调用 python 函数?自从两周以来,这一直困扰着我。谢谢!
如果要在 HTML 文件中执行 javascript,则需要在 Python 中实现完整的 javascript 运行时(当然可能存在现有的或来自其他语言的端口。)HTML 文件不是可执行文件,大多数环境不'也没有解释器,除了浏览器。
如果您可以以某种方式将 javascript 与 HTML 分开(也就是说,如果它不以任何方式依赖 DOM),您可能可以使用SpiderMonkey shell 之类的东西来执行您的 javascript 并在 Python 中读取它的标准输出。
如果没有,您将需要一个完整的浏览器来解释 HTML 和 javascript,然后您需要以某种方式读取它的(视觉)输出,这可能非常复杂。
http://nodejs.org/
删除与 dom 相关的任何内容并使用 node 从命令中运行它,然后使用来自 JS 的输出从 node 调用 Python 脚本,然后在某个地方通过管道输出。
当您说您的 Python 脚本“调用”HTML 文件时,您并没有具体说明您的意思,但假设您的意思是 Python 获取 HTML 文件的内容,您将需要 Python 来解释和运行其中的 JavaScript开始。
我编写了一个 Python 脚本来登录我的网上银行服务提供商(它大量使用 JavaScript),最后我不得不使用 Selenium来控制一个实际的网络浏览器来为我解析 JavaScript,然后查询渲染网页的 DOM通过硒。这绝对不是微不足道的。
我的问题的答案提到了几个用于 Python 的 HTML 解析器。不过,我同意James 的回答——从 HTML 文件中获取 JavaScript 并使用 node.js 运行它。
如果不使用外部库,这将很难实现。您需要一个 HTML 解析器才能开始,这样您才能真正理解 HTML。然后你需要一个 Javascript 解析器/词法分析器/引擎,这样你就可以进行实际的计算。我想可以在 Python 中实现这个,但我建议寻找一个已经实现这个的开源项目。然后,您必须解析/lex/解释 javascript 并将结果传回给 python。
总而言之,我想说将 Javascript 计算移植到 Python 更容易,但这只是我。