新手问题 Mechanize 打开网页超时

403 · 2017年05月29日 · 最后由 403 回复于 2017年05月29日 · 1618 次阅读

Mechanize 打开网页超时

我打开的网页是 2001 年度国家技术发明奖目录。本人小白一个,还望大佬们能为小弟解惑。😁 😁
  • 网页打开超时的原因都有哪些那?
  • 这个网站我用浏览器打开一切正常,超时我捕获到了。但是该怎么处理?
附上我的代码
def download_html(url)
    begin
      agent = Mechanize.new
      agent.user_agent_alias = "Linux Mozilla"
      # agent.open_timeout = 10
      # puts agent.methods
      html = agent.get(url)
    rescue Exception=> e
      puts "出现异常:"+e.message
      puts e.backtrace
      puts e.class
      return "0"
    end
    agent.history.clear
    return html
  end

这里是异常

出现异常:execution expired
/home/liuxin/lib/ruby/2.3.0/net/http.rb:880:in `initialize'
/home/liuxin/lib/ruby/2.3.0/net/http.rb:880:in `open'
/home/liuxin/lib/ruby/2.3.0/net/http.rb:880:in `block in connect'
/home/liuxin/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
/home/liuxin/lib/ruby/2.3.0/net/http.rb:878:in `connect'
/home/liuxin/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
/home/liuxin/lib/ruby/2.3.0/net/http.rb:858:in `start'
/home/liuxin/lib/ruby/gems/2.3.0/gems/net-http-persistent-2.9.4/lib/net/http/persistent.rb:700:in `start'
/home/liuxin/lib/ruby/gems/2.3.0/gems/net-http-persistent-2.9.4/lib/net/http/persistent.rb:631:in `connection_for'
/home/liuxin/lib/ruby/gems/2.3.0/gems/net-http-persistent-2.9.4/lib/net/http/persistent.rb:994:in `request'
/home/liuxin/lib/ruby/gems/2.3.0/gems/mechanize-2.7.5/lib/mechanize/http/agent.rb:274:in `fetch'
/home/liuxin/lib/ruby/gems/2.3.0/gems/mechanize-2.7.5/lib/mechanize.rb:464:in `get'
/media/liuxin/python/Ruby/RubymineProjects/Ruby_PC/class_all.rb:15:in `download_html'
/media/liuxin/python/Ruby/RubymineProjects/Ruby_PC/keji/kj.rb:31:in `jiexi'
/media/liuxin/python/Ruby/RubymineProjects/Ruby_PC/keji/kj.rb:87:in `<top (required)>'
-e:1:in `load'
-e:1:in `<main>'
Net::OpenTimeout

最后发现是 IP 被限制了,但还有点别的问题。

😭 😭 (@ο@) 哇~

有没有知道怎么解决的啊。。。
403 关闭了讨论。 05月30日 19:26
403 重新开启了讨论。 05月30日 19:28
需要 登录 后方可回复, 如果你还没有账号请 注册新账号