尝试使用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?
答案 0 :(得分:3)
我能够重现这一点,看起来其中一个cookie已损坏。任何其他请求都会失败。
您可以通过在每次请求之前清除cookie jar来解决此问题。
agent.cookie_jar.clear!
答案 1 :(得分:1)
我在一个简单的表单上遇到了同样的问题(网站:http://www.myresaleweb.com/)。事实证明,当通过Mechanize提交时,我意外地交换了两个字段值,导致此特定站点抛出500响应代码错误。当我修复这两个值时,它立即起作用。
我无法在浏览器上复制它的原因是我手动正确。一旦我手动错误地尝试(只是为了确认错误),我就可以通过浏览器重现500错误代码。