我的HTML文件如何将JavaScript结果传递给调用它的Python脚本?
How can my HTML file pass JavaScript results back to a Python script that calls it?
我有一个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运行它。
- 用beautifulsoup-python调用onclick事件
- 如何在新创建的模块中从Odoo v8中的Javascript文件中调用python函数
- 用javascript调用python函数,并在网页上显示返回的字符串
- 从PHP调用Python脚本
- 只使用javascript或django调用python脚本
- 如何从javaScript调用python或java方法
- 如何从PHP或Javascript调用python程序(具有命令行参数)
- Django,Dajax和Javascript - onclick不调用python方法
- 你能用JavaScript函数调用Python函数吗
- 如何在Odoo 10中每次调用python函数
- 从JS调用python函数
- 在MAMP中使用Javascript调用Python函数
- 如何从Node.js调用Python函数?
- 使用JQuery调用python脚本
- 如何从HTML页面调用python命令
- 如果多个用户在同一时刻调用Python函数,它是否工作?
- 如何从javascript post调用python脚本读取数据
- 如何在点击按钮上调用python代码中的函数-来自javascript onClick调用python
- 如何像在Javascript中那样调用Python函数
- 在Python应用程序中使用WebKitGtk+时,是否有一种方法可以从JS调用Python函数?