我有一个脚本,在联邦快递每周给我寄发票、挖掘信息并将其发布到xpenser.com时都会用到在最近的联邦快递计费网站重新设计之后,当我运行以下代码时:
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,但它将传入变量字符串,如果您找到了正确的字符串,则可以通过这种方式进行身份验证我希望能在这里做到。
最佳答案
使用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
试试这个。可能对你有帮助
关于ruby - Ruby Mechanize 405 Net::HTTPMethodNotAllowed报废联邦 express 账单时出现错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5891950/