在Java中使用HtmlUnit进行报废(如何查找元素)

时间:2016-08-31 09:41:54

标签: java html web-scraping htmlunit

我需要从网站(www.genios.de)获取大约70份文件。每个文档都有自己的链接,您必须登录WebSite才能访问文档。

虽然我可以手动执行此操作但我想在Java中执行此操作,以便学习更好的代码。

我抬头看了互联网,找到了HtmlUnit,它似乎提供了我需要的所有东西。我的问题是,我无法获取用户名/密码的TextFields和登录按钮。

我尝试了不同的方法,但没有一种方法有效。一次尝试是以下代码:

    final WebClient webClient = new WebClient();
    final HtmlPage page1 = webClient.getPage("http://www.genios.de");
    final List<HtmlForm> forms =  (List<HtmlForm>) page1.getForms();
    final HtmlForm form = forms.get(0);
    HtmlInput usernameInput = form.getInputByName("loginBlock_username"); 

导致:

Exception in thread "main" com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName=[input] attributeName=[name] attributeValue=[loginBlock_username]
    at    com.gargoylesoftware.htmlunit.html.HtmlForm.getInputByName(HtmlForm.java:469)
    at GeniosLogin.main(GeniosLogin.java:26)

1 个答案:

答案 0 :(得分:0)

该字段的ID为“loginBlock_username”。您尝试获取的字段的实际名称是“loginBlock.username”