在刮取联邦快递账单时,Ruby Mechanize 405 Net :: HTTPMethodNotAllowed错误

时间:2011-05-05 02:16:24

标签: ruby mechanize fedex

我每周都有一个脚本进入联邦快递账单,当他们将我的发票邮寄给我,挖掘信息并将其发布到xpenser.com。在最近的Fedex Billing网站重新设计之后,当我运行此代码时:

  agent = Mechanize.new
  page = agent.get 'http://fedex.com/us/fcl/pckgenvlp/online-billing/'
  form = page.form_with(:name => 'logonForm')
  form.username = FEDEX['username']
  form.password = FEDEX['password']
  page = agent.submit form
  pp page

我收到此错误:

Mechanize::ResponseCodeError: 405 => Net::HTTPMethodNotAllowed

我看到有一个javascript auth函数似乎构建了一个设置隐藏变量的URL。我试图传递变量字符串的各种组合但没有成功。

虽然Mechanize不支持javascript,但它会传入变量字符串,如果你点击了正确的字符串,你可以通过这种方式进行授权。我希望在这里做到这一点。

1 个答案:

答案 0 :(得分:0)

使用mechanize-1.0.0可以起到以下作用:

  agent = Mechanize.new
  page = agent.get 'http://fedex.com/us/fcl/pckgenvlp/online-billing/'
  form = page.form_with(:name => 'logonForm')
  form.username = FEDEX['username']
  form.password = FEDEX['password']
  form.add_field!('field_name', 'Page$2')
  page = agent.submit form
  pp page

试试这个。它可能对你有帮助