如何在java中以编程方式访问网页
有一个网页,我想从中检索某个字符串。为此,我需要登录,单击一些按钮,填写文本框,单击另一个按钮 - 然后字符串出现。
我怎样才能编写一个java程序来自动做到这一点?是否有任何有用的库用于此目的?
谢谢
有一个网页,我想从中检索某个字符串。为此,我需要登录,单击一些按钮,填写文本框,单击另一个按钮 - 然后字符串出现。
我怎样才能编写一个java程序来自动做到这一点?是否有任何有用的库用于此目的?
谢谢
试用 HtmlUnit
HtmlUnit是一个“用于Java程序的无GUI浏览器”。它对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
超级简单的方法是在这里使用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());
}