在 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'
我需要从 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'