我Java开发和我有一个问题是关于自动化的一个任务我已经被给定。我在每天3次,每次登录这个网站我们在工作中,选择几种形式的元素,然后点击提交获得一份报告打印出来。我想知道我怎么可以写一些种类的剧本,将自动执行此任务?我应该从哪里开始?什么样的语言,我应该做的吗?我想PHP可能是能够做到这一点或甚至油猴子的脚本可能?

非常感谢。

有帮助吗?

解决方案

在PHP中查看 cURL 。它允许您使用代码(除了移动鼠标之外)执行Web浏览器的所有常规功能。是的,你需要进行屏幕抓取。

其他提示

我认为尚未涉及的潜在问题点是您的短语<!>“登录此网站<!>”; ...根据您需要登录的方式,您可能需要通过后门进入报告。

过去,当我不得不从第三方网站下载报告时,我遇到了这类问题。问题是我无法进行身份验证以访问报告参数,因为我需要登录到网站时采用硬编码且不易编写脚本的方式。但是,我认为您的站点是组织内部的,因此可以绕过/重新设计安全要求以访问数据。如果是这种情况,那么您应该能够使用上面概述的一种屏幕抓取方法。

如果没有,您可能需要将实际的登录程序合并到您的脚本或应用程序中,下载并捕获可能设置的任何cookie并将其合并到您的数据请求中。

我不知道是什么语言的形式是书面的,但是你可以做的是:

  • 重写表格的脚本生成的报告时称为
  • 使用 cron 入境安排这项任务要完成每日邮件和输出到你

一个计划基本上是一个计划的任务在Unix系统。基于Windows服务器可以使用的任务计划大致相同结束。

上述假定你必须接的脚本生成的报告的时刻,可以修改这/复制到新的文件,该文件将通过电子邮件的输出到你。如果没有,那么你可能需要看看屏幕上刮。因为你是一个Java开发,可能会发现 这个列表的Java屏幕上刮公用事业 方便让你开始。

它被称为<!>“;网络抓取<!>”;或者<!>“;屏幕抓取<!>”,并且有很多库可以做到这一点。我不能说一个特定于java的工具:我是一个.Net的人(.Net方式是System.Net.WebClient或System.Net.HttpWebRequest / System.Net.HttpWebResponse)。但我确定有一些东西。

与此同时,第一步是转到您输入表单值的页面,并查看页面的来源。寻找具体的<!> lt; form <!> gt;你填写的元素,并查看它发布到的位置(它的动作)。然后,找到任何<!> lt; input <!> gt; <!> lt; select <!> gt;,<!> lt; textarea <!> gt;您使用的元素,包括表单的任何隐藏输入,并找出您需要获得的值。这将告诉您如何找到一个可以发送它的库来构建您的请求。

如果您需要先登录该站点才能访问该页面,事情可能会更复杂。您可能需要检索和解析会话值,或者能够将某些cookie发送到服务器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top