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

2024-05-22

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

我怎样才能编写一个java程序来自动执行此操作?是否有任何有用的库用于此目的?

Thanks


Try HtmlUnit http://htmlunit.sourceforge.net/

HtmlUnit 是一个“无 GUI 浏览器” 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 http://htmlunit.sourceforge.net/gettingStarted.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在java中以编程方式访问网页 的相关文章

随机推荐

  • 使用 Visual Studio Code 调试 Perl

    我今天刚开始使用 Perl 并安装了活动Perl https en wikipedia org wiki ActivePerl5 24 1 一切都很顺利 我能够创建我的测试程序testPerl pl与简单的print命令并运行它consol
  • MSTest 相当于 NUnit 的参数化测试吗?

    NUnit 支持一项功能 您可以为要多次运行的单元测试指定一组数据输入 RowTest Row 1001 1 2 3 Row 1 1001 2 3 Row 1 2 1001 3 public void SumTests int x int
  • 使用 JQuery 的 Grails 项目,无需插件

    我正在尝试设置一个简单的 Grails 2 1 1 应用程序 该应用程序将使用 JQuery 我有一个名为 TestController 的控制器和一个位于正确位置的index gsp 我手动添加 JQuery 库 没有使用 Grails
  • 如何在 Excel 中创建 GUID?

    我需要一个函数来将 GUID 添加到 Excel 中的单元格 我发现stackoverflow 上的上一个问题 https stackoverflow com questions 7031347 how can i generate gui
  • 尝试在 Python 中下载 jpeg 时出现 urllib.request.urlretrieve 错误

    我正在尝试使用下载 jpg 文件urllib request urlretrieve url 文件名 在 Python 3 5 2 中 网址是http dm victoriassecret com product 404x539 V6039
  • 如何根据另一列的条件语句将因子列添加到数据框?

    我有一个数据框 我需要根据条件语句添加一个因子列 这里是data https www dropbox com s hujiacus8ek5o5z MoroccoCGE CC Stats csv Code morstats agri f lt
  • 在 swift 中发送自定义 HTTP 标头

    我设法从服务器获取 json 但现在我想通过 http 标头添加额外的安全性 这就是我的代码现在的样子 let urlPath http www xxxxxxxx com let url NSURL string urlPath let s
  • 如何在新安装时指定 Lumen(或 Laravel)版本?

    我想在新项目上安装特定版本的 Laravel Lumen 5 1 而不是最新的 5 2 从文档中 lumen new blog or composer create project laravel lumen prefer dist 不起作
  • Java 9 中 java.se 模块的意义是什么?

    为什么 java 9 模块系统有 java se 模块 它对其他模块具有传递依赖关系 这与 Java 9 之前的世界中依赖整个 rt jar 不一样吗 module java se requires transitive java desk
  • npm 错误!遵循 Angular 2 快速入门时出现无效名称:“@angular/core”

    我正在尝试遵循Angular 2 快速入门 https angular io docs ts latest quickstart html 第一步是设置环境 我对 npm 并不是完全陌生 我设法安装并尝试了 Ember 但仅此而已 下面是我
  • 使用 Code Assist (org.eclipse.mylyn.java.ui.javaAllCompletionProposalComputer) 时 Eclipse 非常慢

    你能猜出会发生什么吗 我使用 Eclipse WTP Axis2 生成了一个客户端存根 并在工作时 一个客户 当我尝试使用 Code Assist 时 Eclipse 运行速度非常慢 也就是说 按一个点即可获取方法列表 工作台有长达 30
  • WSDL PHP 函数返回 null,而其他函数返回预期结果

    Summary 在这里 我将列出我解决此问题所采取的所有步骤 以供其他人参考 1 PHP 很愚蠢地 监听 函数的输入消息来定义它应该使用哪个函数 因此 为每个函数提供不同的输入消息 即使它使用相同的类型或元素 您可能认为这对您来说是一项艰巨
  • 如何在 Facebook SDK for iOS 中定义“GeoPoint”属性

    我试图通过创建一个继承预定义 地点 对象的开放图对象来对开放图故事进行地理标记 但是 我不知道如何在 iOS 中定义 GeoPoint 属性 place location 这里有一个类似问题的答案 https stackoverflow c
  • C++ 中的 Anderson Darling 测试

    我正在尝试计算发现的安德森 达林测试here https en wikipedia org wiki Anderson E2 80 93Darling test 我按照维基百科上的步骤进行操作 并确保当我计算我正在测试的数据的平均值和标准差
  • Android Surface 与 Canvas 的关系

    Surface 和 Canvas 之间到底是什么关系 请解释 表面是一个缓冲区 画布保存绘图 视图未附加到画布 也不是表面 窗户被绑在 Surface 和 ViewRoot 询问 随后使用的画布表面 通过要绘制的视图 详细答案你可以阅读这篇
  • IBOutlet、实例变量和属性:最佳实践

    今天 我对有关声明 IBOutlet 和实例变量 管理它们 使用正确的访问器以及正确释放它们的最佳实践进行了各种研究 我已经差不多了 但我有一些小问题 我希望有人能够就最佳实践提出建议 我会将它们格式化为代码并注释问题 以便更容易理解 我排
  • Git checkout 不会丢弃我的更改

    我在 Windows XP 上使用 git 1 7 1 和 cygwin 这个问题可以通过例子得到最好的说明 git status On branch master Changed but not updated use git add
  • Three20中的TTSpeechBubbleShape仅绘制“语音”三角形顶部和底部

    因此 我将 Three20 库用于 iPhone 应用程序 并希望将 TTSpeechBubbleShape 样式用于视图 但三角形似乎不想画在左边或右边 我在源代码中看到它有很多几何图形 并且想知道是否有人解决了这个问题或知道如何解决它
  • python 中的泛型方法

    是否有可能在Python中实现通用方法处理程序 允许调用不存在的函数 像这样的东西 class FooBar def generic method handler methodName print methodName fb FooBar
  • 如何在java中以编程方式访问网页

    有一个网页 我想从中检索某个字符串 为此 我需要登录 单击一些按钮 填充文本框 单击另一个按钮 然后就会出现字符串 我怎样才能编写一个java程序来自动执行此操作 是否有任何有用的库用于此目的 Thanks Try HtmlUnit htt