我正在寻找任何相关的开源项目,可以在服务器端渲染网页并以图像形式传递到客户端(移动设备),就像Opera Mini和SkyFire一样。到目前为止,谷歌没有给我任何线索,因为我无法确定使用哪个术语。你们能给我一个提示吗?谢谢。
CutyCapt 似乎是你正在寻找的工具。它使用 WebKit 并将渲染的页面保存在不同的格式中。例如:./CutyCapt --url=http://www.example.org --out=example.png
Opera Mini 服务器在将网站发送到手机之前不会将其处理为图像,而是处理为 OBML 格式。
好的,这个问题仍未得到解答,我也对这样的解决方案感兴趣。由于在网络上找不到有用的东西,我将尝试一下。请将此答案理解为一个概念,而不是一个可直接使用的解决方案。
想象一个简单的工作流程,没有用户交互。用户打开网站,您的服务器加载网站,渲染图像并将图像提供给您的移动设备。
为确保您的图像是最新的,您需要在任何来自JavaScript的DOM操作时更新您的图像。这是一个棘手的问题,因为没有像“domChanged”这样的JavaScript事件。那么你能做什么呢?
我尝试构建了一个非常小的JavaScript,并与phantomjs一起使用。
var page = require('webpage').create();
var i = 0;
page.onResourceReceived = function(response) {
page.render('stocktwits.' + (i++) + '.png');
};
page.open("http://stocktwits.com/home#people-and-stocks");
我假设请求的资源可能会与dom混淆。但这并不涵盖任何纯javascript setInterval或setTimout函数。
一旦你获得了所有“被动”的东西,你可以尝试提取任何超链接、表单元素和所有样式为“cursor: pointer;”的元素。这是我现在卡住的地方...而且由于这更像是一个“业余项目”,我打算放弃了 :-) 但如果有人继续下去,请告诉我。