0
我使用此代码机械化使用Ruby开辟新页
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
page = agent.get('http://www.indianrail.gov.in/pnr_Enq.html')
form = agent.page.forms[0]
print agent.page.forms[0].fields
# in this i get filed as lccp_pnrno1
agent.page.forms[0]["lccp_pnrno1"] = "4150702245"
button = form.button_with(:value => "Get Status")
agent.submit(form, button)
pp pages
理想的情况下,上面的代码应该先输入10位无。 ,点击获取状态按钮,它应该给一个新的页面,所以需要新的页面给出的信息,但我的输出是只有第一页。所以我有两个疑问在这里:
1)如何检查表单是否提交。
2)第二页如何在提交表单后打印下一页作为pp页面仅打印最后一页。
嘿,谢谢,它只有一个工作有6个字段进入结果页面,但脚本输出包含3个字段。我怎样才能休息领域也。 – 2013-04-10 01:53:18
或者如果你可以尝试我需要这个输出只是不是整个页面1)火车没有2)火车名称3)登机日期4)预订状态5)你可以找到这个领域的新页面..我是新来的红宝石,并会感谢您能否提供帮助。 – 2013-04-10 02:11:38
您将需要从页面上刮取数据 - 请参阅机械化指南的最后一部分(http://mechanize.rubyforge.org/GUIDE_rdoc.html)。这意味着您需要学习css-selectors和/或xpath。举例来说,你可以用'puts page.at('table.table_border')。search('.// tr [3]/td [1]')。text'来得到火车号码。 – 2013-04-10 03:50:42