웹 사이트 (www.genios.de)에서 약 70 개의 문서를 가져와야합니다. 모든 문서에는 링크가 있으므로 문서에 대한 액세스 권한을 얻으려면 WebSite에 로그인해야합니다.Java에서 HtmlUnit을 사용한 스크래핑 (요소 찾기)
수동으로 할 수 있지만 코드를 더 잘 배우려면 Java에서이 작업을 수행하고 싶습니다.
인터넷을 검색하여 필요한 모든 것을 제공하는 것으로 보이는 HtmlUnit을 찾았습니다. 내 문제는 사용자 이름/비밀번호 및 로그인 버튼에 대한 TextField를 가져올 수 없다는 것입니다.
다른 방법을 시도했지만 그 중 아무 것도 작동하지 않았습니다. 결과
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");
: 필드의 ID가 '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)
당신이 원하는 필드를 선택하면 CSS 선택기를 사용하려고했습니다. 예를 들어 크롬 브라우저에서 inspect와 css selector를 선택할 수 있습니다. – imoteb
(이전에는 HtmlForm을 사용 해보지 못했지만) 사용할 수있는'getInputById'를 가지고 있습니까? 또는'getInputByName ("loginBlock.username")'을 시도해보십시오. – Robin
@Anja 어떤 이유로 'getInputById'가 없습니다. loginBlock.username 작품! 그런데 어떻게 찾았습니까? 또 loginBlock_c2도 loginBlock.c2도 'getButtonByName'과 함께 작동하지 않기 때문에 loginButton을 찾고 있습니다. – Burschken