2013-02-05 255 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