gpt4 book ai didi

ruby-on-rails - 如何让我的 rails 应用程序解决错误?

转载 作者:行者123 更新时间:2023-12-03 08:14:07 25 4
gpt4 key购买 nike

我的 rails 应用程序是一个使用 Mechanize/Nokogiri 的网络抓取工具。由于 KBB.com 及其 cookie 的问题,每次我向他们的服务器发出新的 get 请求时,我都必须在我的应用程序中清除我的 cookie jar。

agent.cookie_jar.clear!

然而,当我的应用程序正在抓取数据时,它偶尔会点击带有自动重定向的 KBB.cpm 页面!这会导致错误:
Mechanize::ResponseCodeError: 500 => Net::HTTPInternalServerError for http://www.kbb.com/toyota/prius/2002-toyota-prius/sedan-4d/options/?vehicleid=4843&intent=buy-used -- unhandled response

这会导致我的 rails 应用程序崩溃,因为我无法在重定向之前清除 cookie jar。相反,我希望我的应用程序做的是认识到它可能会遇到错误,并且如果它确实使用不同的进程。就像是:
if there_is_an_error
# alternative process for redirect
else
# business as usual
end

这是我的代码:
agent = Mechanize.new
agent.cookie_jar.clear!
page = agent.get(url)
agent.cookie_jar.clear!
page.link_with(:text => "Choose this style").click
agent.cookie_jar.clear!
agent.page.link_with(:text => "Choose price type").click
agent.cookie_jar.clear!
agent.page.links_with(:text => "Get used car price")[2].click
url = agent.page.uri.to_s.sub('retail', 'private-party')
agent.cookie_jar.clear!
agent.get(url)
@kbb_value = agent.page.at('.selected .value').text.delete('$')

最佳答案

你应该看看http://www.tutorialspoint.com/ruby/ruby_exceptions.htm关于处理异常。还有一个关于这个的堆栈溢出帖子:Begin, Rescue and Ensure in Ruby? .您可以通过在异常处理块中设置一个标志来解决您的问题,然后稍后在您的代码中检查该标志以找出是否发生了异常,这应该可以解决您的问题。

关于ruby-on-rails - 如何让我的 rails 应用程序解决错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20225350/

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