5

URLでウェブサイトのフルスクリーンショットを取得する必要があります。そのためのPHPプログラムやサービスはありますか?そうでない場合は、その目的のJavaプログラムはありますか?

4

8 に答える 8

6

たくさんの方法があります:

  1. http://khtml2png.sourceforge.net/index.php?page=faqを使用します

  2. いくつかのバインディングを備えたwebkitエンジンを使用します:http ://www.blogs.uni-osnabrueck.de/rotapken/2008/12/03/create-screenshots-of-a-web-page-using-python-and-qtwebkit //

  3. バッチモードでmozillaエンジンを使用する:http://www.chimeric.de/blog/2007/1018_automated_screenshots_using_bash_firefox_and_imagemagick

于 2009-09-28T18:40:37.327 に答える
3

PHPまたはJavaで処理された、ページを「レンダリング」するには、特別なバージョンのブラウザが必要です。

ほとんどの場合、Windows、OSX、またはLinuxウィンドウマネージャーを実行しているサーバーにpingを実行した後、URLをヒットするようにカスタム自動化スクリプトを設定する必要があります。

あなたのためにスクリーンショットをするサービスがそこにあります。

http://www.browsercam.com

http://webthumb.bluga.net/home

いくつか例を挙げると。

于 2009-09-28T18:36:56.820 に答える
3

私にとっての最善の解決策:セレンウェブドライバーを使用し、スクリーンショットを撮るのはこれ と同じくらい簡単です:

import java.io.File;
import java.net.URL;

import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.Augmenter;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

public class Testing {

    public void myTest() throws Exception {
        WebDriver driver = new RemoteWebDriver(
                                new URL("http://localhost:4444/wd/hub"), 
                                DesiredCapabilities.firefox());

        driver.get("http://www.google.com");

        // RemoteWebDriver does not implement the TakesScreenshot class
        // if the driver does have the Capabilities to take a screenshot
        // then Augmenter will add the TakesScreenshot methods to the instance
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        File screenshot = ((TakesScreenshot)augmentedDriver).
                            getScreenshotAs(OutputType.FILE);
    }
}

FireFoxDriverを使用することを忘れないでください。HtmlUnitDriverは、ヘッドレスとしてこのように機能しません。

くそ簡単!

于 2014-06-29T11:08:56.717 に答える
2

Litmusは、この種のことに関する優れたオンラインリソースです。URLを送信して、最新のブラウザでフルページのスクリーンショットを撮らせることができます。有料サブスクリプションを取得するか、週末に使用する場合は、最新のブラウザーだけでなく、22のブラウザーすべてでテストするためのアクセス権があります。私はいつもこのウェブサイトを使っています、それは驚異的だと思います。

BrowserShotsも素晴らしく、より多くのブラウザーをサポートしますが、私の経験では、それもはるかに遅いです。ただし、Litmusがテストしないブラウザをテストする必要がある場合に使用すると便利です。

于 2009-09-28T18:34:28.750 に答える
0

これをプログラムで行うのか手動で行うのかは、質問からは明らかではありません。手動の場合: Abductionと呼ばれるFirefox用の優れたプラグインがあります!ページを画像としてレンダリングします。そうでなければ、ケインの答えはそれをかなりカバーしています。

于 2009-09-28T19:37:24.653 に答える
0

専用サーバーがあれば、自分で行うこともできます。アイデアは、Xサーバーとブラウザーをフルスクリーンモードで起動し、ショットを撮り、それを画像ファイルに保存することです。

使用率(時折または集中的)に応じて、プロセスを適応させて(つまり、毎回Xを強制終了しないなど)、プロセスを高速化できます。

于 2009-09-28T18:40:14.007 に答える
0

CutyCaptはスクリーンショットを撮るのに最も簡単なソリューションであり、WindowsとLinuxで機能することがわかりました。

Windowsへのインストール:

ファイルをダウンロードして実行するだけです。

Debianでのインストール:

apt-get install cutycapt xvfb

と実行中:

xvfb-run --server-args="-screen 0, 1024x768x24" /usr/bin/cutycapt --url=http://www.google.com --out=/home/screenshots/screenshot_name.png
于 2012-05-02T05:37:58.547 に答える
0

ヘッドレスブラウザを試してください。これらのいずれかがそれを行う必要があります:

  • PhantomJS ->「Webkit」レイアウトエンジンを使用(Safari / Chromium)
  • TrifleJS ->「Trident」レイアウトエンジンを使用(Internet Explorer)
  • SlimerJS ->「Gecko」レイアウトエンジンを使用(Firefox)

次のJavaScriptコード(ファイルに保存renderpage.js)を使用してスクリーンショットを撮ることができます。

var page = require('webpage').create();
page.open('http://en.wikipedia.org', function() {
    page.render('wikipedia.png');
});

次に、コマンドラインから実行します。

> phantomjs.exe renderpage.js

これにより、スクリーンショットを含むファイルが作成さwikipedia.pngれます。

于 2015-03-17T22:59:18.797 に答える