我在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 :(得分:0)
使用HtmlUnit library。一旦您按照提供的示例下载并解析页面,就可以提取表单输入,如下所示:
HtmlForm form = (HtmlForm) HtmlPage.getElementById("memberloginForm");
String sidValue = form.getInputByName("sid").getValueAttribute();
答案 1 :(得分:0)
你可以使用xpath获取sid和令牌:
//input[@name="sid"]/@value
//input[@name="token"]/@value
你可以得到的最后一个:
//input[last()]/@value
和数据值只是一个时间戳