Mechanize无法导航KBB.com,获取Mechanize :: ResponseCodeError:500 =>网:: HTTPInternalServerError

时间:2013-11-22 22:32:24

标签: ruby-on-rails mechanize

尝试使用Mechanize导航KBB.com。我创建了一个新代理

agent = Mechanize.new

工作正常。

page = agent.get('http://www.kbb.com/toyota/mr2/1993-toyota-mr2/
styles/?intent=buy-used')

返回页面。

page.link_with(:text => "Choose this style").click

给了我这个

page.link_with(:text => "Choose this style").click
Mechanize::ResponseCodeError: 500 => Net::HTTPInternalServerError for 
http://www.kbb.com /toyota/mr2/1993-toyota-mr2/coupe-2d/options/?
vehicleid=11263&intent=buy- used&pricetype=&path=&filter= -- unhandled response

在craigslist上运行正常。为什么不用kbb?

2 个答案:

答案 0 :(得分:3)

我能够重现这一点,看起来其中一个cookie已损坏。任何其他请求都会失败。

您可以通过在每次请求之前清除cookie jar来解决此问题。

agent.cookie_jar.clear!

答案 1 :(得分:1)

我在一个简单的表单上遇到了同样的问题(网站:http://www.myresaleweb.com/)。事实证明,当通过Mechanize提交时,我意外地交换了两个字段值,导致此特定站点抛出500响应代码错误。当我修复这两个值时,它立即起作用。

我无法在浏览器上复制它的原因是我手动正确。一旦我手动错误地尝试(只是为了确认错误),我就可以通过浏览器重现500错误代码。