【问题标题】:Mechanize unable to navigate KBB.com, get Mechanize::ResponseCodeError: 500 => Net::HTTPInternalServerErrorMechanize 无法导航 KBB.com,获取 Mechanize::ResponseCodeError: 500 => Net::HTTPInternalServerError
【发布时间】:2013-11-22 22:32:24
【问题描述】:

尝试使用 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?

【问题讨论】:

    标签: ruby-on-rails mechanize


    【解决方案1】:

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

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

    agent.cookie_jar.clear!

    【讨论】:

    • 我在 IRB 中运行了代码,重现了失败。我最终重新运行agent.get 并再次注意到失败。我意识到第一个请求有效,但后续请求失败。然后我查找了如何清除 cookie。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-19
      • 2016-02-27
      相关资源
      最近更新 更多