当前位置: 首页 > 面试题库 >

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

齐志勇
2023-03-14
问题内容

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

如何编写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



 类似资料:
  • 问题内容: 我希望能够获取网页的html并将其保存到,因此可以对其进行一些处理。另外,我该如何处理各种类型的压缩。 我将如何使用Java做到这一点? 问题答案: 这是一些使用Java的URL类的经过测试的代码。我建议比在这里处理异常或将异常传递到调用堆栈方面做得更好。

  • 我正在开发与地图相关的android应用程序,如果未启用位置服务,我需要在客户端开发中检查是否启用位置访问显示对话框提示。 如何在android中以编程方式启用“位置访问”?

  • 我已经使用bootstrap.yml文件定义了一个应用程序名称。 如何在运行时/以编程方式获取此应用程序名称?

  • 问题内容: 我的资源文件中有很多字符串数组,我想根据用户输入以编程方式访问它们。 因此,如果c == 12,则info应该是名称为“ n_12”的字符串数组。有没有办法做到这一点,并且避免对数百种情况进行switch语句? 谢谢 问题答案: 您可以像这样获取资源ID 然后只需使用该ID 在这里看看有关的另一个示例。

  • 问题内容: 我正在建立一个在线订购系统,但我在澳大利亚,对于国际客户,我想以美元或欧元显示价格,这样他们就不必花心思从澳元转换。 有谁知道我是否可以通过PHP脚本访问的易于解析的格式从网上提取最新汇率? 问题答案: 您可以从yahoo以简单的格式获取货币换算: 例如,将GBP转换为EUR: