Ruby 关于 mechanize

elwin · 2013年01月14日 · 最后由 elwin 回复于 2013年01月14日 · 3330 次阅读

跑了一下官网文档的 google 例子,结果出现了这样的错误

too many connection resets (due to end of file reached - EOFError) after 0 requests on 14171060, last used 1358139738.5671465 seconds ago (Net::HTTP::Persistent::Error)

源代码是这样的

require 'rubygems'
require 'mechanize'

a = Mechanize.new { |agent|
  agent.user_agent_alias = 'Mac Safari'
}

a.get('http://google.com/') do |page|
  search_result = page.form_with(:name => 'f') do |search|
    search.q = 'Hello world'
  end.submit

  search_result.links.each do |link|
    puts link.text
  end
end

求指导。。。

GFW 的问题

#1 楼 @huacnlee 忘说了。。我设置了 goagent 的代理。 a.set_proxy '127.0.0.1', 8087 没设置代理的时候就是一直黑着连不上的状态, 设置了之后就跳出来如上的错误,我不太明白的是(Net::HTTP::Persistent::Error)到底是什么

换个其他例试试吧。 例如:

requre 'mechanize'
agent = Mechanize.new
baidu = agent.get("http://www.baidu.com/")
query_form = baidu.forms[0]
query_form["wd"]="ruby chian"
result = query_form.submit

#3 楼 @small_fish__ 恩。thx。其实我就是不懂为啥搜谷歌的就会出现这个问题(就是 gfw 的缘故么。。)

需要 登录 后方可回复, 如果你还没有账号请 注册新账号