Подтвердить что ты не робот

Как программный доступ к веб-странице в java

Существует веб-страница, из которой я хочу получить определенную строку. Для этого мне нужно войти в систему, нажать несколько кнопок, заполнить текстовое поле, нажать другую кнопку - и затем появится строка.

Как я могу написать программу Java, чтобы сделать это автоматически? Есть ли полезные библиотеки для этой цели?

Спасибо

4b9b3361

Ответ 1

Попробуйте HtmlUnit

HtmlUnit - это "браузер GUI-Less для Java-программы". Он моделирует HTML документы и предоставляет API, который позволяет вам ссылаться на страницы, заполнять формы, ссылки на клики и т.д. так же, как вы делаете это в своем "обычном" браузере.

Пример кода для отправки формы:

@Test
public void submittingForm() throws Exception {
    final WebClient webClient = new WebClient();

    // Get the first page
    final HtmlPage page1 = webClient.getPage("http://some_url");

    // Get the form that we are dealing with and within that form, 
    // find the submit button and the field that we want to change.
    final HtmlForm form = page1.getFormByName("myform");

    final HtmlSubmitInput button = form.getInputByName("submitbutton");
    final HtmlTextInput textField = form.getInputByName("userid");

    // Change the value of the text field
    textField.setValueAttribute("root");

    // Now submit the form by clicking the button and get back the second page.
    final HtmlPage page2 = button.click();

    webClient.closeAllWindows();
}

Подробнее: http://htmlunit.sourceforge.net/gettingStarted.html

Ответ 2

Самый простой способ сделать это - использовать HtmlUnit здесь:

http://htmlunit.sourceforge.net/

и то, что вы хотите сделать, может быть таким же простым, как:

@Test
public void homePage() throws Exception {
    final WebClient webClient = new WebClient();
    final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");
    assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());
}

Ответ 3

Взгляните на проект apache HttpClient, или если вам нужно запустить Javascript на странице, попробуйте HttpUnit.

Ответ 4

Хорошо, когда вы нажимаете кнопку, обычно вы выполняете запрос через метод HTTP POST, поэтому вы должны использовать HttpClient для обработки запроса и HtmlParser, чтобы обработать страницу ответа с нужной строкой.

Ответ 5

Да: