如何从基于Linux的Web应用程序进行3270屏幕抓取
时间:2020-03-06 14:58:23 来源:igfitidea点击:
我有一个LAMP(PHP)Web应用程序,该应用程序需要与IBM 3270大型机上的程序连接(通过Microsoft SNA Server)。我正在寻找的一种解决方案是通过3270进行屏幕抓取。(我正在将现在与过去融为一体!)
许多年前,我编写了C代码,该代码使用HLLAPI作为此类任务的基础。
- HLLAPI仍然是完成此任务的最佳方法吗?
- 如果是这样,我最好只编写一个C应用程序来承担必要的工作,然后从php exec()此C应用程序吗?
- 是否有用于Linux的开源HLLAPI提供程序? (过去我使用商业解决方案,例如Cleo。)
解决方案
虽然我没有3270的经验,但我希望找到并调用外部应用程序或者库是最佳选择。 PHP并不是万能的工具,侵入非Web通信协议最好留给可以很好处理的语言,例如C或者Java。
我没有使用过它,但也许看一下http://x3270.bgp.nu/,上面写着一个版本:
s3270 is a displayless version for writing screen-scraping scripts
屏幕抓取3270应用程序是获取数据的一种完全有效的方法。这些应用程序有很多年没有变化,甚至在某些情况下还没有数十年。有时,根本就没有获取必要数据的API或者其他编程方式。
我目前正在尝试使用命令行Python脚本执行类似的操作。
我打开了通往s3270的管道(在Windows上,exe名称为ws3270)以连接到服务器并发送所有命令。
仔细阅读文档中用于脚本编写的那些部分:
http://x3270.bgp.nu/wc3270-man.html#Actions
http://x3270.bgp.nu/x3270-script.html#Script-Specific-Actions