如何以编程方式访问java中的网页

时间:2010-08-23 17:04:59

标签: java http

有一个网页,我想从中检索某个字符串。为此,我需要登录,单击某些按钮,填写文本框,单击另一个按钮 - 然后出现该字符串。

如何编写java程序来自动执行此操作?是否有任何有用的库用于此目的?

由于

5 个答案:

答案 0 :(得分:24)

尝试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

答案 1 :(得分: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());
}

答案 2 :(得分:1)

查看apache HttpClient项目,或者如果您需要在页面上运行Javascript,请尝试HttpUnit

答案 3 :(得分:0)

当您按下按钮时,通过HTTP POST方法执行请求,因此您应该使用HttpClient来处理请求,并使用HtmlParser来处理响应页面用你需要的字符串。

答案 4 :(得分:0)

是: