【发布时间】:2012-07-16 23:13:17
【问题描述】:
我最近开始在 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运行,每次我在里面输入一些东西,页面的主要内容都会动态变化。有没有人遇到过同样的问题?
【问题讨论】:
-
看起来您在这里有三个单独的问题;如果您可以构建一个演示第一个问题的 HTML 文件(不采用输入字段),另一个演示第二个问题的 HTML 文件(nothing to that when我转储了内容),然后肯定将 JavaScript 建议完全移至另一个问题。
标签: ruby screen-scraping mechanize