2017-09-01 42 views
2

基本上可以獲得我曾經這樣做的網頁正文。如何在傳遞表格數據後使用紅寶石獲取網頁正文

require "rest-client" 
url="example.com" 
test=RestClient.get(url) 

但是現在網頁已經設置了認證步驟。輸入正確的密碼後,您可以轉至PAGE A,否則您將轉至PAGE B。我的問題是我如何使用ID和密碼登錄。你可以把頁面作爲this one here

我進入使用腳本的憑據,看看我登錄與否。

編輯:簡化我想知道如何傳遞用戶名和密碼,我想知道單擊登錄按鈕後打開的頁面的URL。

請注意,這不是在所有的劫持企圖。我只想知道這是否可以完成。我給的網站只是一個例子。

+0

我不認爲你可以這樣做。它使用後期查詢。它就像暴力強制谷歌登錄,但無限數量的嘗試和每次相同的結果。 – Sankalp

+0

看看'mechanize'寶石。它有助於與表單交互。 http://docs.seattlerb.org/mechanize/EXAMPLES_rdoc.html –

回答

1

你可以做到這一點,其實,但我要說的這個解決方案不是很正確。

在您所提供的,你可以找到form標籤與動作場action="/registration/chooseAuth.do;jsessionid=73f8323730d5704b00f173314aaeaad2de767c0c0c42.e34Nb38TbhaTbO0Tc34Sbx0Obhv0n6jAmljGr5XDqQLvpAe"

此鏈接頁面是鏈接到實際的授權,所以你可以做這樣的事情:

RestClient.post(url_from_the_form, { login: 'foo', password: 'bar' }) 

而且它可能會工作,但是。你所做的就是所謂的網頁抓取或網頁抓取。有些工具更適合於:

Mechanize(最簡單的一個) Capybara + Selenium WebDriver

機械化的偉大工程相當簡單的網頁。當涉及到更多的AJAX或SPA時,您最好選擇Capybara + Selenium。

+0

如何從表單中獲取網址? – Rishav

+0

您可以打開html頁面內容,在標籤的action ='字段中找到'form'標籤和url。 – nattfodd

+0

那麼'/ registration/checkTime.do'是一個有效的url嗎?它在'form'標籤下的'action ='字段之後。 – Rishav