2012-02-03 8 views
2

PerlのWWW::MechanizeでASPXページをスクラップしようとしています。問題は、スクラップしたいページにログインした後にしかアクセスできないということです。私はHTML::TreeBuilderX::ASP_NETモジュールを使ってみましたが、うまく動作していないようです。PerlスクリプトでASPXページにログイン

__VIEWSTATE,__EVENTTARGETおよび__EVENTARGUMENTのパラメータを設定しようとしました。

誰もがPerlスクリプトを使用してASPXページにログインする経験はありますか?

答えて

4

一般的には、フォームを投稿する必要があります(通常は任意のaspxページにありますが、私が話しているのはログインページのフォームです)。隠しフィールド(特に実際に隠されたフィールド)。変更する必要がある唯一の値は、uid/pwdのテキストボックスです。だから、すべての名前付き入力タグのリストを取得し、それらをすべて投稿します。これはasp.net認証Cookieを使用してリダイレクトを返す必要があります。これは後続のリクエストに含める必要があります。

+0

+1(特にそれらの非表示フィールド)。フィールドは絶対に必須です。 – NotMe

+1

ありがとう、クリス。 Brad、サーバーの応答にあるように__VIEWSTATEを返す必要があります。常に、例外はありません。 asp.netは、ページ上のコントロールの状態を維持するためにそれらを使用しています。 __EVENTTARGETと__EVENTARGUMENTは、_DoPostbackを実行するjavascriptによって設定されます。実際には、あなたがする必要があるのは、ログインボタンのonclickがやっていることです。いくつかの隠された入力フィールドを設定し、フォームを送信します。 –