0

「自動ブラウジング」スクリプトで作業しています。私のスクリプトは、特定のページをダウンロードし、これらを解析して特定の値を見つけ、出力を生成できるはずです。また、サーバーには認証が必要です。

これらのページは認証部分も含めてPHPからCURL libを使って取得できましたが、問題はこれらのページの内容がjavascript関数内で生成されているため、CURL関数でダウンロードした後、ほとんどの内容が欠落しているためです。 JS コードは実行されません。

したがって、 JS が実行されたのDOM が必要です。私はこれに対する最善のアプローチを見つけるのに時間を費やしましたが、それを見つけたかどうかはわかりません. とにかく、まだうまくいかなかったので...

私がしたことは、Linuxボックスにphantomjsをインストールし、ダウンロードしたページでJSコードを実行するためだけにそれを使用しようとすることでした. そのため、CURL を使用してページをダウンロードし、「test.html」ファイルとして保存してから、「phantomjs test.html」を実行しますが、取得できるのは次のとおりです。

$ phantomjs test.html 
undefined:1 SyntaxError: Parse error

そして、絞首刑にされたように、それ以上何もしません。

test.html には、スクリプト タグ内に html と JS コードの両方が含まれています。JS を使用する他のすべての一般的な Web ページと同様です。

とにかく、test.html に問題がないことを確認するために、wget を使用して google.com の index.html ページをダウンロードしましたが、同じ結果が得られました。

$ phantomjs index.html 
undefined:1 SyntaxError: Parse error

だから私は何か間違ったことをしているに違いないと結論付けました...

どんな助けでも大歓迎です。:-)

ベスト、

4

1 に答える 1

3

機能しない理由phantomjs index.htmlは、phantomjs に渡す最初のパラメーターが、実行する phantomjs スクリプトであり、html ファイルではないためです。html ファイルを渡すのではなく、phantomjs を使用して Web ページを直接開くことをお勧めします。これを行う方法の例はかなりあります。 http://phantomjs.org/のホームページにある例を見てください。より高度な機能については、APIを参照してください。さらに具体的な質問がある場合は、ここで質問してください。

于 2013-02-07T16:28:35.417 に答える