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

我试图解析的 html 页面包含这一行:

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

但是由于某种原因,当我转储当前“页面”的内容时,与此无关

还有一件事可能是相关的,这个字段下面有一个java运行,每次我在里面输入一些东西,页面的主要内容都是动态变化的。有没有人遇到过同样的问题?

4

1 回答 1

0

听起来页面可能是通过 javascript 或 ajax 调用填充的。仅仅因为浏览器在“查看源代码”中向您显示了一些 html,并不意味着它实际上在响应中。您应该使用 charles 或 fiddler 之类的调试代理来查看响应的真实情况。

于 2012-07-17T01:43:43.463 回答