それはすべて始まりました...
数年前、私はWebプログラミングに精通し始めたばかりで、最初の「プロジェクト」の1つはサイトのディレクトリでした。 経験を増やすために、開発は自分のために行われました。 しかし、以来 同様のサイトは暗い、暗い、私は何か特別なことをしたかった。 カタログ内の各サイトにスクリーンショットを表示することにしました。 初めてすべてのスクリーンショットを手で取り、既製のファイルとしてアップロードしたので、これをすべて自動化する方法を知りませんでした。
時間が経ち、プロジェクトは「ほこりで覆われて」おり、対処する時間はありませんでしたが、約1年前に新しい「創造性の波」が現れ、「オートスクリーンセーバーの問題」を解決したいと思いました。
最初に思いついたのは、APIを提供する既製のスクリーンショットサービスです。 しかし、いくつかを並べ替えたところ(名前は覚えていません)、これは私には向いていないことに気付きました。可能性はかなり限られており、時には「ラインナップ」を待つ必要がありました。スクリーンショットのウェブサイトはかなり悲惨に見えました。 そして、主な問題は、これらすべてが非同期で動作しなければならず、スクリプトからは理解できなかったことでした-サービスは一時的なスタブ画像を提供したか、すでに準備されたサイトのスクリーンショットを提供しました。
そこで、私は自分の「自転車」を作ることにしました。
ツール選択
そもそも、コマンドラインからLinuxで動作するスクリーンショットを取得できるユーティリティを見つける必要がありました(Xがないため、サイトはubuntuサーバー上で回転しています)。 仕事仲間が
CutyCaptにリンクして
くれました 。
CutyCaptは、ウェブページのスクリーンショットを作成し、SVG、PDF、PS、PNG、JPEG、TIFF、GIF、BM P(元の説明の翻訳of.site)。
公式サイトからのコピーペーストを行わないために、インストール、依存関係、起動パラメーター、例、Xサーバーがない場合の使用方法(xvfb-runを使用)など、すべてが既に説明されていると言います。
コーディング
そのため、ツールを決定しました。 サイトに戻る。 私はそれをこのように見ました:管理者は説明ページに「スクリーンショットを撮る」ボタンを持っています。これは、AJAXリクエストを通じて、必要な処理(サイズ変更/トリミング/スケッチ)を実行する画像を作成するスクリプトを呼び出します。
すぐに言ってやった。 PHPスクリプトのコードの一部を示します(最も基本的なものは残しておきます)。
<?PHP
そうそう、「落とし穴」に関する情報を共有したいと思います。
- 時々CutyCaptは非常に長い間上映されましたが、作業を完了しませんでした。
- 時々0バイトのスクリーンショットを作成しました
- 一部のフラッシュサイトでエラーが発生してクラッシュすることがありました。 それらを犠牲にして、システムからフラッシュプラグインを削除するだけでした。 フラッシュの場所のスクリーンショットでは空になっていますが、フラッシュによるクラッシュはこれ以上ありません。
参照:公式サイトCutyCaptPHP.netPS私がCuttyCaptについてほとんど書いていないように思えるなら、言ってください-私は記事を補足します(すべてが公式サイトに明確に記載されているように思えました)