如何从软件中提取数据?
How to extract data from software?
我有一个软件,里面有国内公司的列表,当你双击一个公司时,你会得到一些关于它的数据。
它没有 API.
是否有可能以某种方式制作一个脚本来获取这些数据并将其放入我的数据库中。
我不期待完整的教程。但是,有人能给我指出正确的方向吗?
一种方法是找出数据文件的格式,然后编写自己的程序从中检索数据。
SQLite 非常流行,所以 .dat 文件可能是 SQLite 格式:
https://www.sqlite.org/fileformat2.html
如果是这种情况,您应该能够使用 SQLite 客户端以交互方式检查数据库,并弄清楚如何提取数据 - 下面是一个命令行示例:
$ sqlite3 foo.dat
sqlite> .databases
< Database list should appear here >
sqlite> .tables
< Table list should appear here >
以此类推
您可以直接从软件用户界面中提取数据,尽管这比直接从存储它的地方提取数据要慢。
没有关于该软件的任何细节,我现在假设它是一个本地 Windows 应用程序,当您双击以简单方式显示的公司时,它会在文本字段中显示您想要获取的数据列表控件。
要从此类应用程序中收集数据,您可以使用可编写脚本的 UI 自动化工具,例如 AutoHotkey,重复向软件发送必要的 UI 事件以模拟显示公司的用户:
- Set the focus公司列表控件
- Select 下一家公司(可能是 sending an arrow key event)
- Send a double click event,根据显示公司列表的控件的种类,还有其他方法可以做到这一点。
- 等待文本字段显示或填充新数据(您可以等待事件、轮询字段内容、轮询 window 控件、等待弹出窗口 window、 ...)
- Get the text field contents.
- 写在某处(可能是 file)
- 重复
完成后,将文件注入数据库。
如果您的软件不是本机 Windows 应用程序,则有多种 UI 用于其他类型 UI 的自动化工具。它们往往用于 QA,但也可以帮助从您具有有限访问权限的应用程序中提取数据。
我有一个软件,里面有国内公司的列表,当你双击一个公司时,你会得到一些关于它的数据。 它没有 API.
是否有可能以某种方式制作一个脚本来获取这些数据并将其放入我的数据库中。
我不期待完整的教程。但是,有人能给我指出正确的方向吗?
一种方法是找出数据文件的格式,然后编写自己的程序从中检索数据。
SQLite 非常流行,所以 .dat 文件可能是 SQLite 格式:
https://www.sqlite.org/fileformat2.html
如果是这种情况,您应该能够使用 SQLite 客户端以交互方式检查数据库,并弄清楚如何提取数据 - 下面是一个命令行示例:
$ sqlite3 foo.dat
sqlite> .databases
< Database list should appear here >
sqlite> .tables
< Table list should appear here >
以此类推
您可以直接从软件用户界面中提取数据,尽管这比直接从存储它的地方提取数据要慢。
没有关于该软件的任何细节,我现在假设它是一个本地 Windows 应用程序,当您双击以简单方式显示的公司时,它会在文本字段中显示您想要获取的数据列表控件。
要从此类应用程序中收集数据,您可以使用可编写脚本的 UI 自动化工具,例如 AutoHotkey,重复向软件发送必要的 UI 事件以模拟显示公司的用户:
- Set the focus公司列表控件
- Select 下一家公司(可能是 sending an arrow key event)
- Send a double click event,根据显示公司列表的控件的种类,还有其他方法可以做到这一点。
- 等待文本字段显示或填充新数据(您可以等待事件、轮询字段内容、轮询 window 控件、等待弹出窗口 window、 ...)
- Get the text field contents.
- 写在某处(可能是 file)
- 重复
完成后,将文件注入数据库。
如果您的软件不是本机 Windows 应用程序,则有多种 UI 用于其他类型 UI 的自动化工具。它们往往用于 QA,但也可以帮助从您具有有限访问权限的应用程序中提取数据。