ruby - 使用 Nokogiri,我收到错误 "initialize' : getaddrinfo: No such host is known. (SocketError)”

标签 ruby nokogiri

我写了下面的代码,只是为了启动 Nokogiri 以满足要求,当我运行它进行测试时出现错误:

D:\WIPData\Ruby\Scripts>Nokogiri.rb
C:/Ruby193/lib/ruby/1.9.1/net/http.rb:762:in `initialize': getaddrinfo: No such
host is known.  (SocketError)
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:762:in `open'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:762:in `block in connect'
        from C:/Ruby193/lib/ruby/1.9.1/timeout.rb:54:in `timeout'
        from C:/Ruby193/lib/ruby/1.9.1/timeout.rb:99:in `timeout'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:762:in `connect'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:755:in `do_start'
        from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:744:in `start'
        from C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:306:in `open_http'
        from C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:775:in `buffer_open'
        from C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:203:in `block in open_loop'
        from C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:201:in `catch'
        from C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:201:in `open_loop'
        from C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:146:in `open_uri'
        from C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:677:in `open'
        from C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:33:in `open'
        from D:/WIPData/Ruby/Scripts/Nokogiri.rb:6:in `<main>'

D:\WIPData\Ruby\Scripts>

代码

require 'nokogiri'
require 'open-uri'

# Get a Nokogiri::HTML::Document for the page we’re interested in...

doc = Nokogiri::HTML(open('http://www.google.co.in'))

为什么会这样,如何解决,请指教。

最佳答案

看来您需要配置代理。找出您的组织的代理 URL/端口(以及是否需要身份验证)。您可以从浏览器配置中查看此信息。为了在您的 Ruby 代码中使用它,您需要设置 HTTP_PROXY 环境变量。

您可以在 Ruby 代码中设置它:

ENV['HTTP_PROXY'] = 'http://hostname:port'

或者如果您需要身份验证:

ENV['HTTP_PROXY'] = 'http://username:password@hostname:port'

一个更永久的解决方案是在您的系统环境变量中设置 HTTP_PROXY

关于ruby - 使用 Nokogiri,我收到错误 "initialize' : getaddrinfo: No such host is known. (SocketError)”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14459006/

相关文章:

ruby httparty 在发布后获取响应 url 或 id

Ruby:查找字符串中所有出现的模式,操作,然后替换

ruby - 替代 Ruby Case 语句

ruby - Nokogiri 构建器在大型 XML 上的性能?

html - 计算 CSS 类的出现次数

windows - 如何在 XP 上设置 wirble 着色

ruby - Ruby 中的写时复制 fork

ruby - 使用 Ruby 解析 HTML 表,Nokogiri 省略列标题

css - 使用 Nokogiri 和变量中的上层祖先节点选择多个节点

ruby-on-rails - 给定一个传递给 Nokogiri 的缩短的 URL,如何获得完整的 URL?