gpt4 book ai didi

ruby - Mechanize 脚本一直以 `fetch' 停止:503 => Net::HTTPServiceUnavailable

转载 作者:太空宇宙 更新时间:2023-11-03 17:54:12 25 4
gpt4 key购买 nike

我正在尝试使用 Mechanize 运行一个本地 Ruby 脚本,该脚本将我登录到一个网站并浏览其大约 1500 个网页并解析每个网页的信息。解析有效,但只持续一定时间;脚本运行大约 45 秒左右,然后完全停止并报告:

/Users/myname/.rvm/gems/ruby-1.9.3-p374/gems/mechanize-2.7.1/lib/mechanize/http/agent.rb:306:in `fetch': 503 => Net::HTTPServiceUnavailable for http://example.com/page;53 -- unhandled response (Mechanize::ResponseCodeError)

我不能确定,但​​我觉得这是由于连接超时造成的。我尝试在我的脚本中用很长的超时时间解决这个问题(这个脚本最多可能需要 15 分钟才能运行),但它仍然没有改变任何东西。如果您有任何想法,请告诉我。

这是我的脚本:

require 'mechanize'
require 'open-uri'
require 'rubygems'

agent = Mechanize.new
agent.open_timeout = 1000
agent.read_timeout = 1000
agent.max_history = 1

page = agent.get('examplesite.com')

myform = page.form_with(:action => '/maint')

myuserid_field = myform.field_with(:id => "username")
myuserid_field.value = 'myusername'
mypass_field = myform.field_with(:id => "password")
mypass_field.value = 'mypassword'

page = agent.submit(myform, myform.buttons.first)

urlArray = [giant array of webpages here]

urlArray.each do |term|
page = agent.get('' + term + '')
page.encoding = 'windows-1252'
puts agent.page.parser.xpath("//tr[4]/td[2]/textarea/text()").text + 'NEWLINEHERE'
end

最佳答案

尝试在每个循环中调用 sleep(1)。很可能目标服务器被所有的请求压得喘不过气来。

关于ruby - Mechanize 脚本一直以 `fetch' 停止:503 => Net::HTTPServiceUnavailable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17582964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com