2013-02-05 451 views
1

我在Java中遇到了一些問題。我試圖獲取一個隨機命名的輸入的名稱和它的值,以及其他一些輸入。如何從其他網站獲取字段名稱和值?

我需要從長相搶值這樣的頁面的源:

<form action="/login/" id="memberloginForm" method="post"> 
     <input name="sid" value="8f324234fds330248j4328" type="hidden" /> 
     <input data-value="1360027648" type="hidden" name="token" value="b482b673cffd5123345fbb21c7fec05" /> 
     <input name="redirect" type="hidden" value="" /> 
     <input type="hidden" name="snvlusskh" value="38c546d1302f025f44f9024dc234bac0" /> 

其中「SID」,數據值和的「令牌」值,命名和價值的價值每次訪問該頁面時,最後一次輸入都是完全隨機的。我試圖尋找JSoup HTML Parser庫來解決這個問題,但無法弄清楚我將如何抓取每個輸入的名稱,然後將正確的值與它配對。

我需要做的是抓住這些字段的所有名稱和值,以便我可以在我自己的程序中使用它們。該網站要求這些值登錄,我的程序需要能夠登錄到網站。

謝謝任何​​人,可以幫助!

+0

什麼網站是你想獲取這些值的時間戳從? – mrunion

+0

這是一個大問題嗎?如果可以的話,我寧願保持私密性,但這不是管理員想要的非常公開的東西。 – N01zii

+0

這只是它聽起來很腥。看起來無論你想通過代碼/腳本登錄到哪個網站,都不希望發生這種情況。事實上,你不會回答僅僅是哪個網站的問題,這使得你很可能不合格。你可能完全在董事會之外,但我不相信。祝你好運! – mrunion

回答

0

使用HtmlUnit library。一旦你下載並在所提供的示例解析頁面,您可以提取表單輸入這樣的:

HtmlForm form = (HtmlForm) HtmlPage.getElementById("memberloginForm"); 
String sidValue = form.getInputByName("sid").getValueAttribute(); 
+0

這似乎正是我所需要的,但是如何獲取名稱和值的名稱和值是每次頁面加載時隨機生成的? – N01zii

0

SID和令牌,你可以使用XPath得到:

//input[@name="sid"]/@value 
//input[@name="token"]/@value 

最後一個你可以用得到:

//input[last()]/@value 

和數據值是obvoiusly只是

+0

我真的很抱歉,但我會在哪裏使用它?我明白你要發佈的內容,但是你的意思是說我應該使用JSoup或其他東西? – N01zii

+0

是的,或任何知道xpath的庫。 – pguardiario