2009-04-29 6 views
25

私はウェブサイトにログインしてログインしています。Mechanizeを使用してJavaScriptを処理するにはどうすればよいですか?

ウェブサイトは私を新しいページにリダイレクトし、すべてのクッキーとリダイレクトジョブを処理しますが、最後のページを取得できません。私はFirebugを使い、同じ仕事をもう一度やって、Mechanizeで渡さなければならなかったページがもう2つあることを知りました。

JavaScriptとHTMLコードがありますが、通常のページコードのようには見えないため、理解できませんでした。そのページは何ですか?どのように他のページにリダイレクトできますか?これらを渡すにはどうすればよいですか?

+3

http://pastie.org/のようなペーストサイトにjavascriptを入れてリンクを投稿してみませんか? – method

答えて

36

JavaScriptを使用してページを処理する必要がある場合は、WATIRまたはSeleniumを試してください。これらは実際のWebブラウザを駆動するため、すべてのJavascriptを処理できます。 WATIR Classicには、特定の拡張機能がインストールされたIEまたはFirefoxが必要です。画面に表示されるページは、機能しているように見えます。

あなたの他の選択肢は、問題のページのJavascriptが何をしているかを理解し、手動で回避することですが、それは面倒です。

+1

みなさんありがとうございます。 watirはちょうど私がしたいと思ったことをしました:) ルビーに私はもっと魅力的です:)私は取得しようとしていたWebサイトはuser_agentのために私に怒っていましたが、Firefox、行っている。スタックオーバーフローの岩!私はここが好き:) – user96960

+0

@millimoose WATIRでスクリプトを実行している間にブラウザを隠すことができますか? – Volatil3

+0

ああ、糸のネクロマンシー。私はもはや考えていないと私は "いいえ"を賭けたいと思う - とにかく、これはOPが尋ねたものとは異なる質問ですので、あなたはそれを別に尋ねることができますので、他の誰かが答える機会があります。また、私はPhantomJSを見てみることも考えています。これはヘッドなし(つまり、「UIなし」)のWebKitオートメーションです。それは十分に機能しますが、前回は何かのために使用したいと思っていましたが、非同期APIは必要な処理を行いすぎてしまったので、Seleniumに行きました。 – millimoose

13

現在、MechanizeはJavaScriptを処理していません。そこ結局MechanizeのにJohnsonの機能をマージの話だが、それが起こるまでは、次の2つのオプションがあります。それらのページをトラバースする方法を理解するのに十分JavaScriptのうち

  1. 図を。
  2. 実際のブラウザを自動化するを理解していますWatirを使用してJavaScriptを自動化します。
+0

ジョンソンは死んだプロジェクトです。交換品はありますか? – zhon

5

これらのページは何ですか?他のページにリダイレクトする方法私はこれらを渡すために何をすべきですか?

時々、これらのページで作業が行われます。 JavaScriptは、あなたがやろうとしているような自動化されたアクセスを防ぐために存在します。多くのウェブサイトでは「良い」ブラウザがあることを確認するために不必要なチェックが行われるため、user_agentがIEなどの共通のものに設定されていることを確認してください。場合によっては、user_agentを古いブラウザのように設定すると、JavaScriptなしで過去になることができます。

複数の戦略を使用してウェブサイトとそのソフトウェア開発者を圧倒しなければならないため、ウェブサイトの自動化は楽しいです。他の人たちと同様に、Watirは現時点でJavaScriptを過去のものにするための最良のツールです。

関連する問題