【问题标题】:Handling Failed Connection on Proxy for Nokogiri处理 Nokogiri 代理上的失败连接
【发布时间】:2012-06-12 19:59:41
【问题描述】:

我有以下代码行,用于抓取网站的 html。如您所见,我将代理传递给此

doc = Nokogiri::HTML(open(Scrape.scrape_url + page.to_s, :proxy => 'http://177.19.134.66:8080'))

有时这些代理出现故障,然后我得到错误

连接尝试失败,因为连接方没有 一段时间后正确响应,或建立连接 失败,因为连接的主机没有响应。 - 连接(2)

我对 ruby​​ 很陌生,但我想做的是创建一个代理 IP 地址列表。然后让它尝试使用第一个进行刮擦。如果它失败了,那么尝试下一个,直到没有剩下的检查......

我将如何创建一个列表然后处理错误?

【问题讨论】:

    标签: ruby screen-scraping nokogiri


    【解决方案1】:

    最简单的应该是:

    ['http://localhost:8080','http://localhost:8888','http://localhost:8000'].each do |proxy|
      break if @doc = Nokogiri::HTML(open(Scrape.scrape_url + page.to_s, :proxy => proxy)) rescue nil
    end
    

    请注意“@doc”,因为“doc”将在循环结束时超出范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      相关资源
      最近更新 更多