这个程序有两个部分,第一部分是与一些客户端软件连接服务器以启动该过程,第二部分是编写一个将自动化 Web 浏览器的客户端。
即使你问了关于 java 的问题,我也会给出一个 c++ 解决方案(任何解决方案都比在一个多月没有解决方案后没有答案好)
客户端:编写一个 Qt 应用程序,该应用程序使用QWebView
该类来实质上控制 c++ 应用程序中的浏览器。这非常简单,Qt 文档在这方面有很大帮助。
让这个应用程序连接到一个 Tcp 服务器应用程序(可以用 c++、java 甚至 python 的任何语言编写)。客户端和此服务器之间的此 tcp 连接将仅用于“通知”客户端开始加载特定页面。这可能是监视一个文本配置文件,该文件说明哪些客户端将加载哪个 URL(等等......)。该服务器还应该有某种方式可以“发出信号”以开始向客户端发送它们各自的启动信号(我个人会通过标准输入来执行此操作)。
Web 内容服务器:就我个人而言,这部分我会使用 django 服务器。这将允许您使用 python 向其他 Tcp 服务器发出信号以启动(我有一个 view
在浏览器中启动时会发送“启动信号”的信号)。使用这种方法的好处是您可以拥有另一个视图,该视图接受来自每个客户端的 POST。每个 POST 都可能有哪个客户端发送它,加载了什么 url 以及花费了多长时间。
每个客户端都能够跟踪页面加载所花费的时间。这可以通过loadStarted()
在执行该load(QUrl)
方法后发出信号时启动计时器并loadFinished(bool)
在QWebView
. 然后可以将此信息 POST 回 django 服务器(其model
定义可以很容易地将信息保存到数据库)。