我是一个Java开发人员,我有一个关于自动化我一直在考虑一个问题的任务。
我不得不每天3次,登录到这个网站,我们在工作中,选择一些表单元素,然后点击提交拿到打印出来的报告。
我不知道我该怎么写某种脚本将自动执行此任务? 我应该从哪里开始? 我应该做它用什么语言? 我想PHP也许能够做到这一点,甚至可能是一个Greasemonkey的脚本?
非常感谢。
我是一个Java开发人员,我有一个关于自动化我一直在考虑一个问题的任务。
我不得不每天3次,登录到这个网站,我们在工作中,选择一些表单元素,然后点击提交拿到打印出来的报告。
我不知道我该怎么写某种脚本将自动执行此任务? 我应该从哪里开始? 我应该做它用什么语言? 我想PHP也许能够做到这一点,甚至可能是一个Greasemonkey的脚本?
非常感谢。
检查出卷曲的PHP。 它可以让你做代码的Web浏览器的所有正常功能(不是移动鼠标等)。 是的,你需要做的屏幕抓取。
我认为还没有被触及但潜在的症结是你的那句“登录此网站” ......根据你需要如何登录,您可能需要通过后门进去访问的报告。
我有这样的事情在过去的问题,当我不得不从第三方网站下载的报告。 问题是,我无法验证访问报表参数的,因为我登录到该网站所需的硬编码和低于脚本友好的方式。 但是,我相信,你的网站是组织内部的,所以有可能绕过/才能访问数据返工的安全要求。 如果是这种情况,那么你应该能够使用上述屏幕抓取方法之一。
如果没有,你可能需要实际的登录过程纳入您的脚本或应用程序,下载并捕获了可能设置的任何cookie,并将其纳入您的数据请求。
我不知道你的表格是用什么语言,但你可以做的是:
一个cron基本上是在Unix系统计划的任务。 基于Windows的服务器可以使用任务计划程序大同小异结束。
上述假设您可以访问它产生的那一刻的报告,并可以修改它的脚本/复制到一个新的文件,该文件将输出发送给您。 如果没有,那么你可能需要考虑屏幕抓取。 当你是一个Java开发人员,你可能会发现刮实用程序Java屏幕的这个名单得心应手,让您开始。
It's called "web scraping" or "screen scraping", and there are a lot of libraries out there to do this. I couldn't speak to a Java-specific tool, though: I'm a .Net guy (the .Net way would be System.Net.WebClient or System.Net.HttpWebRequest/System.Net.HttpWebResponse). But I'm sure there's something.
In the meantime, the first step is go to the page where you input the form values and view the source of the page. Look for the specific <form> element you're filling out, and see where it posts to (it's action). Then, find any <input> <select>, <textarea> elements you use, including any hidden inputs for the form, and figure out what values you need to get. That will tell you how to build your request once you find a library that will let you send it.
If you need to login to the site first to get to the page, things can be more complicated. You may need to retrieve and parse a session value or be able to send certain cookies to the server.