1

最近、Ruby で mechanize を使い始めましたが、完璧に機能していました。今日、ページを取得しようとしましたが、何らかの理由で入力フィールドが取得されません。以下のコードを参照してください。

agent = Mechanize.new
agent.add_auth(url, user, pass1, realm = nil, domain = nil)
agent.agent.http.verify_mode = OpenSSL::SSL::VERIFY_NONE
#agent.log = Logger.new(STDOUT)
page = agent.get(url)

page.forms.first.field_with(:name => 'Login[username]').value=user
page.forms.first.field_with(:name => 'Login[password]').value=pass2
page = agent.submit(page.forms.first)
page = page.link_with(:text => "Search").click
page = page.link_with(:text => "Spiral").click
pp page

Im が解析しようとしている html ページには、次の行が含まれています。

<input name="SpiralMatch_string" type="text" maxlength="128">

しかし、何らかの理由で、現在の「ページ」の内容をダンプしても、それに関連するものは何もありません

関連する可能性があるもう 1 つのことがあります。このフィールドの下で実行されている Java があり、何かを入力するたびに、ページのメイン コンテンツが動的に変化します。誰かが同じ問題に遭遇しましたか?

4

1 に答える 1

0

ページがjavascriptまたはajax呼び出しによって入力されているようです。ブラウザが「ソースの表示」にHTMLを表示しているからといって、それが実際に応答に表示されているわけではありません。応答が実際にどのように見えるかを確認するには、charlesやfiddlerなどのデバッグプロキシを使用する必要があります。

于 2012-07-17T01:43:43.463 に答える