我们的网站分析软件包包含有关用户在网页内活动的详细信息,我们会在网页顶部的叠加层中显示(点击/滚动/互动)可视化效果。目前,这是一个包含页面实时渲染的IFrame。
由于页面随时间变化,旧数据不再对应于页面的当前布局。我们想运行一个蜘蛛来偶尔拍摄页面的快照,这样我们就可以保持与各种版本页面交互的记录。
我们有一个工作实现(Linux),但快照过程是一个可怕的Python / JavaScript / HTML黑客,它打开一个Firefox窗口,截图和滚动,合并并保存到文件。这要求我们在通常的无头服务器上安装X堆栈,每页占用一分钟。
我们更喜欢无头实现,其性能接近于常规Web浏览器中的渲染时间,但没有找到任何内容。
使用Mozilla源代码构建一些东西的动作是一个起点,但这对我来说似乎有些过分,如果我们试图让它保持最新,那就是维护噩梦。
建议?
答案 0 :(得分:1)
An article on Digital Inspiration指向跨越平台的CutyCapt并且使用Webkit呈现引擎以及使用当前IE呈现引擎并且需要Windows,natch的IECapt。使用Gecko,Firefox的渲染引擎,我的脑海里没有任何东西。
但是,我怀疑你是否能够远离X.由于CutyCapt需要Qt,因此需要安装X或Windows。而且,类似地,IECapt将需要Windows(或Wine,如果你想尝试在Linux下运行它,然后你又回到需要X)。我怀疑你能否找到一个不需要Qt,Gtk,GDI或Cocoa的渲染引擎,因此需要完整安装显示库。答案 1 :(得分:0)
为什么不存储发送给客户端的HTML?然后,您可以使用它在Web浏览器中重新显示为页面,以显示它的外观。
使用关于使用操作的webanalytics数据,您可以使用它来将组合框,字段等默认为客户端可能具有的值,甚至更改按钮上的CSS等,以将其标记为被推送。 / p>
作为一项好处,您不需要X堆栈,也不需要进行任何爬行或存储图像。
编辑(Re Andrew Moore):这是您将当前CSS /图像存储在版本号下。在HTML中的注释中放置一个易于解析的版本号。如果更改CSS /图像并使用现有名称,请在发送的HTML输出中增加版本号。
存储HTML的系统将知道它需要获取新副本并存储在新数字下。重新显示时,它只使用版本号来确定要使用的CSS /图像集。
我们目前在这里有一个使用非常类似的系统的系统,因此我们可以跟踪用户的操作并在他们致电我们的服务台时提供更好的支持,因为他们可以启动用户会话并跟踪他们所做的事情,甚至是一些现场直播。 / p>
您甚至可以将其编码为在存储时自动审查敏感字段。
答案 2 :(得分:0)
根据您的需求的具体情况,也许您可以使用众多免费网页缩略图服务之一逃脱? snapcasa,例如,您可以每月生成数千/不收取任何广告费用(不使用,只需用Google搜索“免费缩略图服务”)即可找到此内容。
只是一个thot