我有一個腳本,每週將郵件發送給我的發票,挖出信息並將其發佈到xpenser.com,這些腳本會在每週進入Fedex帳單。近期聯邦快遞結算網站進行重新設計後,當我運行這段代碼:Ruby Mechanize 405 Net :: HTTPMethodNotAllowed Error Scraping 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的身份驗證功能,似乎構建設置隱藏網址變量。我試圖在沒有成功的情況下傳遞可變字符串的各種組合。
雖然Mechanize不支持JavaScript,但它會傳入變量字符串,如果您點擊了正確的字符串,則可以通過該方式進行身份驗證。我希望在這裏做到這一點。
我建議你使用firebug firefox插件來追蹤實際查詢(並找到所有必需的參數集),然後改進你的ruby代碼。 – taro 2011-05-10 18:45:53
你需要手動設置form.action,還有那些參數:appName,step3URL,afterwardsURL,returnurl。有關詳細信息,請參閱函數CallLogin()。 – taro 2011-05-10 19:11:33