web-dev-qa-db-ja.com

Mechanizeを使用してJavaScriptを処理するにはどうすればよいですか?

ログインしてWebサイトに接続しています。

Webサイトは私を新しいページにリダイレクトし、MechanizeはすべてのCookieおよびリダイレクトジョブを処理しますが、最後のページを取得できません。私はFirebugを使用して同じ作業を再度行い、Mechanizeで渡す必要のあるページがさらに2つあることを確認しました。

ページをざっと見たところ、JavaScriptとHTMLのコードがいくつかあることがわかりましたが、通常のページコードとは異なるため、理解できませんでした。それらのページは何のためのものですか?どのようにして他のページにリダイレクトできますか?これらをパスするにはどうすればよいですか?

27
user96960

JavaScriptでページを処理する必要がある場合は、 [〜#〜] watir [〜#〜] または Selenium を試してください-これらは実際のWebブラウザを駆動するため、すべてを処理できますJavaScript。 WATIRクラシックでは、IEまたは特定の拡張機能がインストールされたFirefoxのいずれかが必要です。動作するように画面上でページが点滅します。

他のオプションは、問題のページのJavascriptが何をしているかを理解し、それを手動でバイパスすることですが、それは面倒です。

37
millimoose

現在、MechanizeはJavaScriptを処理していません。最終的に Johnson の機能をMechanizeにマージするという話がありますが、それが実現するまで、2つのオプションがあります。

  1. JavaScriptを理解して、これらのページをトラバースする方法を理解してください。
  2. Watir を使用して、JavaScriptをが実行する実際のブラウザを自動化します
14
Pesto

それらのページは何のためのものですか?他のページにリダイレクトする方法。これらを渡すにはどうすればよいですか?

時にはそれらのページで作業が行われます。時々JavaScriptは、あなたがやろうとしているような自動アクセスを防ぐためにあります:)多くのWebサイトでは、「適切な」ブラウザであることを確認するために不要なチェックが行われているため、user_agentは、IEなどの一般的なものに設定されます。 user_agent古いブラウザのように見えると、JavaScriptがなくてもパススルーできます。

複数の戦略を使用して、Webサイトとそのソフトウェア開発者をしのぐ必要があるため、Webサイトの自動化は楽しいです。他の人が言ったように、Watirは現時点でJavaScriptを乗り越えるための最良のツールです。

5
method