0

次のエラーが発生する前に、mechanizeスクリプトを約3時間実行しました。

C:/Ruby193/lib/ruby/gems/1.9.1/gems/net-http-persistent- 
2.7/lib/net/http/persistent/ssl_reuse.rb:29:in `initialize': 
A connection attempt failed because the connected party did not properly 
respond after a period of time, or established connection failed because
connected host has failed to respond. - connect(2) (Errno::ETIMEDOUT)

私はそれが2〜3時間実行されているという事実によるものだと思いますが、誰かがエラーについて特別な洞察を持っているかどうか疑問に思っていました

これが私のスクリプトです

require 'rubygems'
require 'mechanize'

def next_button(web_page)
  web_page.page.search('.next a').each do |next_button|
    web_page.click(next_button)
    web_page.page.search('.listing_content').each |info|
      get_info(info)
    end
  next_button(web_page)
  end
end

def get_info(info)
  infos = info.at_css('.url').text.strip
  address = info.css('.street-address').text.strip
  city = info.css('.locality').text.strip
  state = info.css('.region').text.strip 
  zip = info.css('.postal-code').text.strip
end

web_page = Mechanize.new                     
web_page.user_agent_alias = "Linux Firefox"
web_page.get(HOME_URL)

web_page.page.search('.page-navigation a').each do |pagination_link|
 web_page.page.search('.categories-list a').each do |link|  

    web_page.click(link)
    web_page.page.search('.listing_content').each do |info|  

      get_info(info)
    end
    next_button(web_page, worksheet)
  end

  web_page.click(pagination_link)
end    

よろしくお願いします。

4

1 に答える 1

0

私の意見では、永続的な接続は、価値があるよりも面倒です。これが発生した場合、mechanize の最新バージョンを使用していることを確認します。それでも発生する場合は、永続的な接続を使用しない mechanize 1.0.0 にフォールバックします。

于 2012-07-03T22:59:37.510 に答える