Bitte beachte:
Die Code-Beispiel sollen zur Veranschaulichung dienen. Du musst sie natürlich an dein
Projekt anpassen und Fehlerabfragen einfügen.
<php
function getAPIUrl($url, $params): string
{
$API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
$API_SECRET="xxxxxxxxxxxxxx"
$p['url'] = $url;
$p += $params;
$queryString = http_build_query($p);
$token = md5($queryString . $API_SECRET);
return "https://url2img.app/api/v1/$API_KEY/$token/get?$queryString";
}
$url = "https://google.de";
$params['full_page'] = 1;
/*
* Version 1 -> file_get_contents
*/
file_put_contents('result.png', file_get_contents(getAPIUrl($url, $params)));
/*
* Version 2 -> cURL
*/
$ch = curl_init(getAPIUrl($url, $params));
try {
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
$resTest = json_decode($response);
if ($resTest) {
// Es ist ein JSON-Ergebnis
echo $response;
} else {
// Kein JSON, also Bild
file_put_contents('result.png', $response);
echo "Datei gespeichert...";
}
}
} finally {
curl_close($ch);
}
#!/bin/bash
url_encode() {
s="${1//'%'/%25}"
s="${s//' '/%20}"
s="${s//'"'/%22}"
s="${s//'#'/%23}"
s="${s//'$'/%24}"
s="${s//'&'/%26}"
s="${s//'+'/%2B}"
s="${s//','/%2C}"
s="${s//'/'/%2F}"
s="${s//':'/%3A}"
s="${s//';'/%3B}"
s="${s//'='/%3D}"
s="${s//'?'/%3F}"
s="${s//'@'/%40}"
s="${s//'['/%5B}"
s="${s//']'/%5D}"
printf %s "$s"
}
API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
API_SECRET="xxxxxxxxxxxxxx"
URL=$(url_encode "https://google.de")
echo $URL
PARAMS="url=${URL}&fullpage=1"
TOKEN=$(echo -n "${PARAMS}${API_SECRET}" | md5sum | cut -d " " -f 1)
curl -vvs "https://url2img.app/api/v1/${API_KEY}/${TOKEN}/get?${PARAMS}" > result.png
Du möchtest den API-Aufruf direkt in deine statisch erzeugten Seiten einfügen?
Auch das ist kein Problem!
Sobald du dich kostenlos registriert und am System angemeldet hast, steht dir unsere
Spielwiese innerhalb unseres Control-Panels zur Verfügung.
Gib dort einfach die gewünschten Parameter ein und unser System erstellt dir den
notwendigen Link zum Aufruf unserer API.
Diesen kannst du dann einfach kopieren und nach Lust und Laune dort einfügen, wo du ihn
gerne hättest.
Zur Spielwiese
Du benötigst Hilfe beim Anbinden einer anderen Programmiersprache?
Schreib uns einfach eine Mail an info@muv.com.
Wir sind Programmierer wie du und finden schon zusammen eine passende Lösung...
Mit diesem Parameter legst du den TTL- oder „Time to Live“-Wert für einen neu gerenderten Screenshot fest (in Sekunden). Solltest du vor erreichen der TTL den selben Screenshot erneut über die API abfragen, so wird kein neuer Screenshot erstellt, sondern du erhältst den zwischengespeicherten Screenshot aus dem Cache.
Beispiel:&ttl=3600
&ttl=2592000 (30 Tage)
&ttl=2592000 (30 Tage)
Mit diesem Parameter bestimmst du, dass ein neuer Screenshot gerendert wird - unabhängig von einer vorher eventuell festgelegten TTL.
Beispiel:&force=1
&force=0
Mit diesem Parameter legst du fest, dass ein Screenshot der gesamten Seite erstellt werden soll. Du erhältst also ein Bild, dass auch den "unsichtbaren", scrollbaren Bereich beinhaltet.
Beispiel:&full_page=1
&full_page=0
Mit diesem Parameter legst du fest, wie breit dein Screenshot sein soll. Dies ist die Breite des Bildes und nicht zu verwechseln mit der Breite des Viewports.
Beispiel:&width=800
&width=2000
Mit diesem Parameter legst du die Abmaße des Viewports (Browserfensters) fest. Der Parameter beinhaltet Breite "x" Höhe.
Beispiel:&viewport=800x600
&viewport=1440x900
&viewport=2000x2000
Mit diesem Parameter kannst du bestimmen, dass nach dem Laden der Seite eine gewisse Zeit gewartet werden soll (z.B. damit Bilder nachgeladen oder Scripte ausgeführt werden können). Der Parameter beinhaltet die Wartezeit in Millisekunden.
Beispiel:&delay=200
&delay=5000
Mit diesem Parameter kannst du einen benutzerdefinierten
User-Agent header
angeben,
der beim Holen der übergebenen URL verwendet wird.
So kannst du verschiedene Geräte simulieren.
Eine Liste gängiger User-Agent-Zeichenfolgen findest du z.B. hier
https://deviceatlas.com/blog/list-of-user-agent-strings
Standardmäßig ist der Google Chrome-Desktopbrowser eingestellt.
Mit diesem Parameter kannst du einen benutzerdefinierten Sprachen header angeben, der beim Holen der übergebenen URL verwendet wird. So kannst du verschiedene Browser-Sprachen simulieren.
Beispiel:&accept_lang=en-US,en;q=0.5
&accept_lang=de
Mit diesem (String-)Parameter kannst du einen Benutzernamen angeben, der beim Zugriff auf eine kennwortgeschützte URL oder Website verwendet werden soll.
Beispiel:&auth_user=admin
Nicht gesetzt
Mit diesem (String-)Parameter kannst du ein Passwort angeben, das beim Zugriff auf eine kennwortgeschützte URL oder Website verwendet werden soll.
Beispiel:&auth_pass=my_secret
Nicht gesetzt
Mit diesem Parameter kannst du bestimmen, dass die Seite komplett ohne Bilder geladen werden soll.
Beispiel:&no_images=1
&no_images=0
Mit diesem Parameter kannst du bestimmen, dass die Seite ohne Javascript-Unterstützung geladen werden soll.
Beispiel:&no_javascript=1
&no_javascript=0
Mit diesem Parameter kannst du bestimmen, dass der Browser beim Laden der Seite keine Popup-Fenster öffnen darf.
Beispiel:&no_dialogs=1
&no_dialogs=0
Mit diesem Parameter kannst du bestimmen, dass der Screenshot erst dann erzeugt werden soll,
wenn 500ms lang keine Daten mehr geladen wurden.
Dies kann sinnvoll sein, wenn z.B. Bilder per Javascript nachgeladen werden, nachdem die
Seite bereits vollständig geladen wurde.
&lazy_loading=1
&lazy_loading=0
Mit diesem Parameter kannst du Screenshots erstellen, die aus Grauwerten bestehen (anstelle von Farben). D.h. du erhältst ein schwarz-weiß Bild.
Beispiel:&greyscale=1
&greyscale=0