2010-07-27 13 views
10

Ok, im Moment kann ich es mir nicht leisten, für irgendeinen Dienst zu bezahlen. Ich möchte mit meinem gemieteten Server, der auf Linux basiert, Screenshots machen und auf dem Bildschirm ausgeben können.Screenshot der Website, serverseitig, auf einem gemieteten Linux-Server, kostenlos

Ich weiß, dass es viele Dienste gibt, die das tun, aber sie haben normalerweise Limits oder Wasserzeichen, oder Sie müssen warten, bis Ihr Screenshot aus der Warteschlange genommen wird.

Gibt es eine Möglichkeit, die Screenshots selbst zu machen und sie später zu cachen? Ich benutze PHP, aber ich bin nicht darauf beschränkt; Ich bin nur auf einem Linux-Server, damit die GD-Funktionen nicht funktionieren. Hilfe! :)

Antwort

10

PhantomJs is the solution

if(phantom.state.length === 0){ 
    phantom.state = '0_home'; 
    phantom.open('http://www.mini.de'); 
} 
else if(phantom.state === '0_home'){ 
    phantom.viewportSize = {width: 800, height: 600}; 
    phantom.sleep(2000); 
    phantom.render('home.png'); 
    phantom.exit(0); 
} 
+2

Sehr netter Link, danke fürs Teilen! – Kirzilla

+0

Was ist mit Websites in Chinesisch und anderen Skripten als Roman. – Vish

+1

Ich denke phantomjs sollte kein Problem funktionieren. Wenn Webkit die Seite rendern kann, sollte phantomjs einen Screenshot erstellen können. – cromulus

9

http://cutycapt.sourceforge.net/

CutyCapt ist ein kleines Cross-Plattform-Befehlszeilenprogramm WebKit-Rendering von einer Webseite in eine Vielzahl von Vektor- und Bitmap-Formaten zu erfassen, einschließlich SVG, PDF, PS, PNG, JPEG, TIFF, GIF und BMP.

Es gibt kein PHP-API, aber Sie können es immer über die PHP exec Funktionen verwenden.

+0

Denken Sie, ich könnte es mit einem gehosteten Server ausführen? – casraf

+0

Glaubst du nicht? – Kirzilla

+0

[Timthumb] (http://code.google.com/p/timthumb/) bietet Zugriff auf cutycapt, was mit dem "no PHP-api" -Problem helfen kann. – Nick

5

Hier ist ein besseres Skript PhantomJS 1,5

var page = require('webpage').create(); 

page.open('http://www.google.com', function() { 

    page.viewportSize = {width: 1024, height: 768}; 
    page.render('screenshot.png'); 
    phantom.exit(); 
}); 
+2

Brad: Sie könnten PhantomJS 1.5 benötigen. Bei dieser Version hat das bei mir gut funktioniert. – Husky

+0

Sie haben Recht .. Dies wird nur auf Version 1.5 Vielen Dank für die Klärung. – Brad

1

Eine der Lösungen im Jahr 2017 mit:

https://github.com/GoogleChrome/puppeteer

Beispiel:

const puppeteer = require('puppeteer'); 

(async() => { 

const browser = await puppeteer.launch(); 
const page = await browser.newPage(); 
await page.goto('https://example.com'); 
await page.screenshot({path: 'example.png'}); 

browser.close(); 
})(); 
Verwandte Themen