Мне нужно получить около 70 документов с веб-сайта (www.genios.de). У каждого документа есть своя ссылка, и вам нужно войти в WebSite, чтобы получить доступ к документам.Скрап с HtmlUnit в Java (Как найти элементы)
Хотя я мог это сделать вручную, я хочу сделать это на 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)
Пробовал использовать селектор CSS, когда вы выбираете нужное вам поле, в браузере Chrome, например, вы можете выбрать инспектор, а затем селектор css. – imoteb
(ранее не работал с HtmlForm), но имеет ли он 'getInputById', который вы могли бы использовать? или попробуйте 'getInputByName (" loginBlock.username ")'? – Robin
@Anja По какой-то причине нет 'getInputById'. loginBlock.username работает! Но как вы это нашли? Я также ищу loginButton, так как ни loginBlock_c2, ни loginBlock.c2, похоже, не работают с 'getButtonByName'. – Burschken