2

私はPythonスクリプトを持っており、このPythonスクリプトは、コンピューターにローカルに保存されているhtmlファイル(つまり、Webページ)を呼び出します。htmlファイルはいくつかの計算(jquery、javascriptなど)を実行し、結果をpythonスクリプトに返す必要があります。設定を変更したくないので(Pythonスクリプトがhtml-fileを呼び出し、結果がpython-scriptに返されます)、理由を聞かないでください。

誰かがこれを解決する方法を教えてもらえますか?html-fileからの結果を呼び出し元のpython関数に渡すにはどうすればよいですか?それは2週間以来私を悩ませています。ありがとう!

4

4 に答える 4

3

HTML ファイルで JavaScript を実行したい場合は、Python で完全な JavaScript ランタイムを実装する必要があります (もちろん、他の言語からの既存のものやポートがあるかもしれません)。HTML ファイルは実行可能ファイルではなく、ほとんどの環境ではブラウザを除いて、インタプリタもありません。

何らかの方法で JavaScript を HTML から分離できる場合 (つまり、DOM にまったく依存しない場合)、SpiderMonkeyシェルのようなものを使用して JavaScript を実行し、Python の標準出力を読み取ることができる場合があります。

そうでない場合は、HTML と JavaScript を解釈するための完全なブラウザーが必要になり、その (視覚的な) 出力を何らかの形で読み取る必要がありますが、これは非常に複雑になる可能性があります。

于 2011-08-23T09:17:46.390 に答える
1

http://nodejs.org/
dom に関係するものをすべて削除し、ノードを使用してコマンドから実行し、JS からの出力を使用してノードから Python スクリプトを呼び出し、出力をどこかにパイプします。

于 2011-08-23T09:39:10.330 に答える
0

これは、外部ライブラリを使用せずに達成するのは非常に困難です。実際に HTML を理解できるようにするには、まず HTML パーサーが必要です。次に、実際の計算を行うことができるように、Javascript パーサー/レクサー/エンジンが必要になります。これを Python で実装することは可能だと思いますが、既にこれを実装しているオープン ソース プロジェクトを探すことをお勧めします。次に、javascript を解析/レックス/解釈し、結果を python に返す必要があります。

全体として、Javascript の計算を Python に移植する方が簡単だと思いますが、それは私だけです。

于 2011-08-23T09:15:58.893 に答える
0

Python スクリプトが HTML ファイルを「呼び出す」と言うときの正確な意味を指定していませんが、Python が HTML ファイルのコンテンツを取得することを意味すると仮定すると、Python がその中の JavaScript を解釈して実行する必要があります。で開始する。

インターネット バンキング プロバイダー (JavaScript を多用) にログオンする Python スクリプトを作成しましたが、最終的には Selenium を使用して実際の Web ブラウザーを制御し、JavaScript を解析してから、レンダリングされた Web ページの DOM をクエリする必要がありました。セレン経由。それは明らかに自明ではありませんでした。

私の質問への回答では、Python 用の HTML パーサーがいくつか言及されています。ただし、 James の回答には同意します — HTML ファイルから JavaScript を取得し、それを node.js で実行します。

于 2011-08-23T09:50:23.767 に答える