我正在使用wkhtmltoimage,一切都很顺利,直到我要求它做一个twitter的截图,我得到了这个奇怪的错误:
Loading page (1/2)
WARNING: Phonon needs QCoreApplication::applicationName to be set to export audio output names through the DBUS interface
Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
Rendering (2/2)
Done
下面是我使用的命令:
xvfb-run wkhtmltoimage --format png --quality 100 http://twitter.com/jnbdz twitter2.png
我使用的是Ubuntu 11, Apache2/PHP5和Qt4。
当我试图获得谷歌或其他网站的屏幕截图时,我没有得到这个错误。
当它工作时,我只得到这个:http://dl.dropbox.com/u/20599297/twitter3.png
你知道是什么导致了这个错误吗?
当尝试做yahoo.com的截图时,我得到了一个不同的错误:
xvfb-run wkhtmltoimage --format png --quality 100 http://yahoo.com/ yahoo1.png
Loading page (1/2)
Error: Failed loading page http://yahoo.com/ (sometimes it will work just to ignore this error with --load-error-handling ignore)
Error: Failed loading page http://yahoo.com/ (sometimes it will work just to ignore this error with --load-error-handling ignore)
好的,那么,按照顺序:
1/wkhtmltoimage使用Webkit,这可能是由于一些原因加载Phonon。例如,为了呈现多媒体Web内容。不过这不是很重要。
2/一些音频相关的Phonon功能需要设置应用程序名称。您可能不需要这些特性来呈现Web页面,所以不要担心这个警告。
3/Phonon尝试然后连接到Jack音频服务器失败,可能是因为它扫描可用的音频输出系统。你不需要音频,所以你也可以忽略这些错误。
4/据我所知,Twitter大量使用JavaScript进行渲染。我不知道wkhtmltoimage附带了JavaScript解释器。因此几乎可以保证渲染问题。
您必须理解wkhtmltoimage中使用的方法有些原始,并且不是很健壮。在许多情况下,它会失败,首先是在处理动态内容时。
你可能会有更好的运气在http://mobile.twitter.com/的移动版本。
至于雅虎的错误,它们似乎是连接错误,与上述任何一个都没有关系。