一个爬虫出了个奇怪的问题。有时它会对某些请求抛出一个Rails FATAL错误,但是跟踪非常有限,如下所示
[2014-07-01 18:16:37] FATAL Rails :
ArgumentError (invalid %-encoding (c ^ FK+ 9u$_ t Kl
ΥE! =k \ ̕* ߚ>c+<O یo ʘ> C R! 2 D (5 x q#!` 4 p |8 I E
:+ H^9`^ # Vo{ >
=[z )):
lib/locale_middleware.rb:14:in `call'爬虫用户代理是
Mozilla/5.0 (compatible; EasouSpider; +http://www.easou.com/search/spider.html)
我们可以要求它停止通过robots.txt爬行,但最好是处理根本原因,如果可能的话,不要在这些请求上失败。
我们也不能真正地复制这类请求,因此,任何关于如何生成类似请求的建议都会有很大帮助。
我们使用的是Rails 3.2.19,Ubuntu12.04上的Unicorn。这是我们的middleware.rb
发布于 2014-07-08 17:07:12
特别感谢本杰明辛克莱尔指出github的正确发行。
该解决方案被描述为对此评论。
application.rb中config.middleware.use ::Rack::Robustness do |g|
g.no_catch_all
g.on(ArgumentError) { |ex| 400 }
g.content_type 'text/plain'
g.body{ |ex| ex.message }
g.ensure(true) { |ex| env['rack.errors'].write(ex.message) }
endhttps://stackoverflow.com/questions/24611841
复制相似问题