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

Scraping with HtmlUnit in Java (How to find the elements)

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

虽然我可以手动执行此操作,但我想在 Java 中执行此操作只是为了更好地学习编码。

我找到了 HtmlUnit,它似乎提供了我需要的所有方法。我的问题是,我无法获得 username/password 的 TextFields 和登录按钮。

我尝试了不同的方法,但其中 none 行得通。一种尝试是以下代码:

    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)

该字段的 ID 是 'loginBlock_username'。您要获取的字段的实际名称是 'loginBlock.username'