从 Debian Jessie 上的浏览​​器以外的应用程序中进行抓取

从 Debian Jessie 上的浏览​​器以外的应用程序中进行抓取

我正在考虑建立一个自动交易系统。
我认为可能没有服务以 txt 格式提供订单簿和订单顶部信息。

所以我必须做刮痧。

我想知道是否可以以编程方式从浏览器以外的应用程序中自动提取文本数据。

我想获取输出文件~/Desktop/foo.txt
例如,当终端中的许多行超过 100 行滚动时,
是否可以在不使用ctrl+ c/ v] 和 [编辑和复制] 的情况下抓取终端输出?

第二个例子,当Libre Office Impress的幻灯片放映模式下出现很多幻灯片时,是否可以抓取所有文本数据?

我想知道适用于所有其他应用程序的方法。
除了截图+OCR还有其他方法吗?
什么包提供这样的功能?

答案1

恐怕这样的工具不存在。您的想法基本上是将每个应用程序写入的每一段文本记录到日志文件中。这需要所有应用程序有一个通用的系统接口,因此您可以为该日志记录设置一个挂钩。

但应用程序可以自由使用任何库来进行渲染或实现自己的渲染、在 GPU 上进行渲染或仅复制位图。在这种情况下,所有应用程序的唯一通用接口是窗口系统(如X),除了更改像素之外什么也看不到,而这些像素确实需要永久进行 OCR 处理——这是不可能的事情。

为了最接近您的要求,您可以做的是修改 FreeType 库以记录 FreeType 呈现的每一段文本。这应该涵盖很多 Linux 应用程序,但肯定不是全部。当空格未传递给 FreeType、窗口向上滚动且多个应用程序同步运行时,请预期它会产生大量混乱的输出。

相关内容