嗯,好吧,我们走了......
我们在常规浏览器上运行java applet(ff4 +或ie5 +)。
我无法访问java代码/ servlet。甚至也不是服务器。
我需要从这个小程序发送/检索数据。这意味着我必须通过单击按钮并填写表单的文本框来模拟用户,并返回数据(在服务器响应之后),它将位于文本框中。
所以可以使用的技术包括C,VB,.NET(主要是webbrowser对象),PHP(可用),JavaScript,使用Fiddler嗅探浏览器/服务器通信。
我们真的需要这个。但如果那是不可能的,那么我们也可能必须知道。 该数据归我公司所有,因此不会产生任何版权。
此外,我对非传统解决方案持开放态度,例如将html保存为图像,然后使用某些OCR软件检索数据......
因此,任何建议或指示方向都将不胜感激。
THX
Paulo Bueno。
答案 0 :(得分:4)
必须模仿用户浏览会遇到问题,如果可行,我会建议另一条路线。这些是我要采取的步骤:
答案 1 :(得分:0)
您可以使用JRE中附带的“appletviewer”在没有浏览器的情况下运行任何applet。这样就可以通过http://code.google.com/p/windowlicker/读取和发送虚假输入来控制SWING GUI,但这是不可行的。
但是在具有访问代码的常规浏览器环境中,您宁愿这样做:
在对象标记中使用“scriptable”和“mayscript”属性/元素。标准浏览器JRE包含一个“plugin.jar”,其中包含完成此项工作所需的功能。这个接口让Java-Applet代码与Javascript通信相反,从你可以做任何你想做的事情(即ajax请求)
这个主题相当复杂,请查看谷歌告诉我们的内容:
http://www.htmlcodetutorial.com/applets/_APPLET_MAYSCRIPT.html http://www.raditha.com/java/javascript.php
使用此界面真的很痛苦,所以我建议在你的applet中实现HTTPRequests,告诉PHP服务器你想告诉它什么。
的问候, 迈克尔
答案 2 :(得分:0)
嗯......这是非常不寻常的情况。如果您有applet,当然,您应该有权访问其src文件来修改:)我无法访问java代码/ servlet。甚至连 服务器
我需要从这个小程序发送/检索数据。这意味着我必须 通过单击按钮并填写表单来模拟用户 文本框并返回数据(在服务器响应之后) 在文本框内。
无论如何,要“模拟”用户你可以使用Robot对象,但它仍然会要求你修改applet代码以使其支持一些额外的功能......我记得,JS等无法控制来自外部命令的Java Applet,除非applet确实包含JS支持的网页交互功能......但是你仍然说你没有任何访问applet src所以没有信息applet是否支持netscape.javascript以及它是如何支持它所以它还不太清楚......所以我必须问你有这个小程序的任何文档吗?
围绕问题文本并回到问题标题本身
“如何从Java小程序中提取数据(在浏览器中)”
我可以这么说 要从Java Applet中提取数据 ,您可以使用支持Java Applet和JS交互example,docs的netscape lib。在这种情况下,这是最佳方式
祝你好运答案 3 :(得分:0)
除非它被混淆,否则可能不会很难对applet进行反编译/更改/编译。 我用JAD。 https://stackoverflow.com/questions/31353/is-jad-the-best-java-decompiler
答案 4 :(得分:0)
如果您必须通过与Java applet交互来获取数据而不是对其进行逆向工程,请查看FEST (Fixtures for Easy Software Testing)。 FEST旨在通过模拟用户交互来测试Java Swing GUI,但您也可以轻松地使用它来自动化您的applet。
查看testing applets上的文档页面以开始使用。