我最近开始在ruby中使用机械化,它运行得很好。 今天我尝试获取页面但由于某些原因未输入输入字段,请参阅以下代码:
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运行,每当我输入一些内容时,页面的主要内容就是动态变化。有人遇到过同样的问题吗?
答案 0 :(得分:0)
听起来好像页面可能会通过javascript或ajax调用填充。 仅仅因为浏览器在“查看源代码”中显示了一些html并不意味着它实际上在响应中。 您应该使用像charles或fiddler这样的调试代理来查看响应的真实情况。