【问题标题】:ruby how to close a mechanize connection红宝石如何关闭机械化连接
【发布时间】:2015-07-27 18:36:26
【问题描述】:

我遇到了机械化连接过多的问题,我想知道如何关闭连接,因为我想用代理构建刮板。

我确实找到了

agent.shutdown

但由于某种原因,我无法让它发挥作用。有什么帮助吗?

10.times {

    minion = Mechanize.new { |mech|
        mech.open_timeout   = 15
        mech.read_timeout   = 15

    }

    minion.set_proxy '212.82.126.32', 80


    page = minion.get("http://www.whatsmyip.org/")
    proxy_ip_adress = page.parser.css('#ip').text
    puts proxy_ip_adress
    minion.shutdown

}

【问题讨论】:

    标签: ruby-on-rails ruby mechanize open-uri


    【解决方案1】:

    我想你会想要使用 Mechanize#start 块:

    10.times do
      Mechanize.start do |minion|
        minion.open_timeout   = 15
        minion.read_timeout   = 15
    
        minion.set_proxy '212.82.126.32', 80
    
        page = minion.get("http://www.whatsmyip.org/")
        proxy_ip_adress = page.parser.css('#ip').text
        puts proxy_ip_adress
      end
      # minion definitely doesn't exist anymore
    end
    

    【讨论】:

    • 非常感谢这个作品!!我还添加了开始,救援,这样如果代理死了,它就不会中断,它会继续移动。非常感谢
    • 您是否有任何关于如何使其循环的提示,直到它找到一个有效的代理并且可以获取该站点?我将此代码用于随机代理 proxies = @proxies.order("RANDOM()").first 尝试开始救援,但它只会使用相同的代理重试。 mind = 此处为空白
    猜你喜欢
    • 2012-09-01
    • 2012-04-28
    • 2023-03-11
    • 2011-01-10
    • 2012-03-03
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2011-01-12
    相关资源
    最近更新 更多