你应该找一本查尔斯的书(
http://www.charlesproxy.com/
)或者可以让你从浏览器中查看提交表单时发生的事情。无论如何,你的问题是这部分:
agent.page.forms[0]["lookup_text"] = "VG278H"
agent.page.forms[0].submit
正在返回一个html片段,该片段如下所示:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><script>self.location.href="http://icecat.us/index.cgi?language=en&new_search=1&lookup_text=VG278H"</script>
因此,您实际上需要直接调用此命令,或者取消self.locationhref,并让您的代理执行get:
page = agent.get("http://icecat.us/index.cgi?language=en&new_search=1&lookup_text=VG278H")
如果你打算这样做,这是有效的:
require 'rubygems'
require 'mechanize'
require 'open-uri'
agent = Mechanize.new
agent.get ("http://icecat.biz/en/")
page = agent.get("http://icecat.us/index.cgi?language=en&new_search=1&lookup_text=VG278H")
page = page.links_with(:text => 'VG278H')[2].click
doc = page.parser
puts doc
快乐的刮擦