Webサーバーでサイトのスクリーンショット生成
よくサイトのスクリーンショットを表示してるのを見かけますよね
ある日仕事でそれをWebサーバー側で生成できないかと依頼されたので、ちょっと調べてみました
実現するには2パターンのやり方かなと
外部APIを利用して実現する
メリット:自前のWebサーバーの負荷軽減
デメリット:APIによっては融通が効かない
参考までにちょっと調べた外部APIのリンクです。
・simpleapi
・thumbshots
・webthumb
自前のサーバー上で全て実現する
メリット:拡張性がある
デメリット:負荷がかなり高い
linuxサーバーでの実現方法(Xvfb + Firefox + ImageMagick)
手順①Xvfbを利用し、サーバー上で仮想のウィンドウを起動する
手順②Firefoxをその仮想ウィンドウ上で開いて、指定URLのサイトを閲覧
手順③そのWindowに表示されている情報をImageMagickのimportでスクリーンショット
(X Window Dumpを利用しても撮れます)
手順④後はImageMagickを利用して、加工でもして保存
linuxサーバーでの依頼だったので、そっちしか調べてませんが、
Windowsサーバーを利用した方がコストも負荷も軽減できると思います。
私は自前でサーバーを用意できなかったので、今のところ外部APIを利用してます。
使用頻度にもよりますが、外部APIを利用しても無料で機能の実現は可能かと思います。
サーバーの増設とかになった場合は自前でサーバー用意してもいいかな。
その時は専用にWindowsサーバーでやってみたいですね
◎参考サイト
・PHPテクメモ
ある日仕事でそれをWebサーバー側で生成できないかと依頼されたので、ちょっと調べてみました
実現するには2パターンのやり方かなと
外部APIを利用して実現する
メリット:自前のWebサーバーの負荷軽減
デメリット:APIによっては融通が効かない
参考までにちょっと調べた外部APIのリンクです。
・simpleapi
・thumbshots
・webthumb
自前のサーバー上で全て実現する
メリット:拡張性がある
デメリット:負荷がかなり高い
linuxサーバーでの実現方法(Xvfb + Firefox + ImageMagick)
手順①Xvfbを利用し、サーバー上で仮想のウィンドウを起動する
手順②Firefoxをその仮想ウィンドウ上で開いて、指定URLのサイトを閲覧
手順③そのWindowに表示されている情報をImageMagickのimportでスクリーンショット
(X Window Dumpを利用しても撮れます)
手順④後はImageMagickを利用して、加工でもして保存
linuxサーバーでの依頼だったので、そっちしか調べてませんが、
Windowsサーバーを利用した方がコストも負荷も軽減できると思います。
私は自前でサーバーを用意できなかったので、今のところ外部APIを利用してます。
使用頻度にもよりますが、外部APIを利用しても無料で機能の実現は可能かと思います。
サーバーの増設とかになった場合は自前でサーバー用意してもいいかな。
その時は専用にWindowsサーバーでやってみたいですね
◎参考サイト
・PHPテクメモ