1

私の友人は、Ruby の機械化を使用して、ログイン後にページから Cookie を取得するスクリプトを作成しました。

  • 機械化を開始
  • ログインを通過する
  • フォームから配信されたページから Cookie の値を取得する

スクリプトは彼にはうまくいくようですが、私にはうまくいきません。これをインタラクティブに実行しようとしたところ、Mechanize から返されたページ タイトルがブラウザのものとは異なることに気付きました。ログインすると、ページ タイトルは「SSL VPN - ホーム」ですが、返された送信オブジェクトのタイトル属性を見ると、「お待ちください...」と表示されます。

irb(main):084:0> intermediate.title
=> "Please wait..."
irb(main):085:0> intermediate.iframes
=> [#<Mechanize::Page::Frame nil "/dana-na/html/blank.html">

Mechanize は、目的のページを取得するのに十分な時間待機していない可能性がありますか? 「お待ちください...」は、Mechanize セッションが到達していない、更新またはリダイレクトされる中間ページを暗示しているようです。いずれにせよ、同じタイトルの値は得られません。

=> #<Mechanize::Page
 {url
  #<URI::HTTPS:0x00000002b49338 URL:https://vpn1.example.com/dana/home/starter0.cgi?check=yes>}
 {meta_refresh}
 {title "Please wait..."}
 {iframes #<Mechanize::Page::Frame nil "/dana-na/html/blank.html">}
 {frames}
 {links}
 {forms
  #<Mechanize::Form
   {name "frmGrab"}
   {method "POST"}
   {action "/dana/home/starter0.cgi"}
   {fields
    [hidden:0x15b9860 type: hidden name: xsauth value: a0395604a9f4f531504a7f6b6dc86051]
    [hidden:0x15b94a0 type: hidden name: tz_offset value: ]
    [hidden:0x15b92e8 type: hidden name: clienttime value: ]
    [hidden:0x15b8ff0 type: hidden name: url value: ]
    [hidden:0x15b8ac8 type: hidden name: activex_enabled value: 0]
    [hidden:0x15b8898 type: hidden name: java_enabled value: 0]
    [hidden:0x15b8690 type: hidden name: power_user value: 0]
    [hidden:0x15b84ec type: hidden name: grab value: 1]
    [hidden:0x15b8348 type: hidden name: browserproxy value: ]
    [hidden:0x15b8168 type: hidden name: browsertype value: ]
    [hidden:0x15b7fb0 type: hidden name: browserproxysettings value: ]
    [hidden:0x15b7df8 type: hidden name: check value: yes]
    [hidden:0x15b7c54 type: hidden name: nextpage value: ]
    [hidden:0x15bb8f4 type: hidden name: mid value: ]
    [hidden:0x15bb5d4 type: hidden name: signin value: ]
    [hidden:0x15bb2dc type: hidden name: alias value: ]
    [hidden:0x15bb05c type: hidden name: id value: ]
    [hidden:0x15baeb8 type: hidden name: username value: ]
    [hidden:0x15bacb0 type: hidden name: password value: ]
    [hidden:0x15bab20 type: hidden name: occurrence value: ]}
   {radiobuttons}
   {checkboxes}
   {file_uploads}
   {buttons}>}>
4

2 に答える 2

0

別のログイン フォームが表示されるので、最初のログインが何らかの理由で機能しなかったと推測されます。

于 2013-05-23T01:30:37.843 に答える