如何从其他网站获取字段名称和值?

时间:2013-02-05 03:14:02

标签: java screen-scraping

我在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库来解决这个问题,但是无法弄清楚我如何能够获取每个输入的名称,然后将正确的值与它配对。

我需要做的是获取这些字段的所有名称和值,以便我可以在我自己的程序中使用它们。该网站需要登录这些值,我的程序需要能够登录网站。

感谢任何有帮助的人!

2 个答案:

答案 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

和数据值只是一个时间戳