Ładowanie niektórych stron internetowych może zająć trochę czasu lub zawierają one określoną treść intktóre mogą zostać załadowane po załadowaniu strony głównej. Jest to szczególnie prawdziwe w przypadku stron internetowych o dużej zawartości AJAX, których treść jest ładowana za pomocą JavaScript.
GrabzIt wykrywa, kiedy strona się ładuje, ale w niektórych szczególnych okolicznościach wymienionych powyżej potrzebuje dodatkowych instrukcji w postaci opóźnienia, które należy zastosować przed wykonaniem przechwytywania lub oczekiwania na pojawienie się określonego elementu HTML przed rozpoczęciem przechwytywania dalej. Technik tych można użyć podczas robienia zrzutów ekranu stron internetowych lub konwertowania kodu HTML into Pliki PDF, obrazy lub dokumenty Word, a Ty masz pakiet premium. Jednakże obie techniki są ograniczone do maksymalnego czasu oczekiwania wynoszącego trzydzieści sekund.
Dobrym pomysłem jest niestosowanie zbyt dużego opóźnienia, ponieważ w nietypowym przypadku umieszczenia w kolejce przechwytywania duże opóźnienie zmniejszy priorytet przechwytywania, chociaż istnieje pewne sprytne obejście do tego.
Funkcje te są również dostępne w naszym zrzut ekranu w Internecie i skrobak do sieci narzędzia.
Wystarczy określić opóźnienie w milisekundach i tyle będzie czekać przechwytywanie. Pamiętaj, że sekunda ma 1000 milisekund. Wszystkie poniższe przykłady czekają trzy sekundy przed przechwyceniem strony internetowej.
GrabzItClient grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret"); ImageOptions options = new ImageOptions(); options.Delay = 3000; grabzIt.URLToImage("http://www.spacex.com", options); grabzIt.SaveTo("images/result.jpg");
GrabzItClient grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret"); ImageOptions options = new ImageOptions(); options.setDelay(3000); grabzIt.URLToImage("http://www.spacex.com", options); grabzIt.SaveTo("images/result.jpg");
<script src="https://cdn.jsdelivr.net/npm/@grabzit/js@3.5.2/grabzit.min.js"></script>
<script>
GrabzIt("Sign in to view your Application Key").ConvertURL("http://www.spacex.com",
{"delay": 3000}).Create();
</script>
var grabzit = require('grabzit'); var client = new grabzit("Sign in to view your Application Key", "Sign in to view your Application Secret"); var options = {"delay":"3000"}; client.url_to_image("http://www.spacex.com", options); client.save_to("images/result.jpg", function (error, id){ if (error != null){ throw error; } });
$grabzIt = GrabzItClient->new("Sign in to view your Application Key", "Sign in to view your Application Secret"); $options = GrabzItImageOptions->new(); $options->delay(3000); $grabzIt->URLToImage("http://www.spacex.com", $options); $grabzIt->SaveTo("images/result.jpg");
$grabzIt = new \GrabzIt\GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret"); $options = new \GrabzIt\GrabzItImageOptions(); $options->setDelay(3000); $grabzIt->URLToImage("http://www.spacex.com", $options); $grabzIt->SaveTo($filepath);
grabzIt = GrabzItClient.GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret") options = GrabzItImageOptions.GrabzItImageOptions() options.delay = 3000 grabzIt.URLToImage("http://www.spacex.com", options) grabzIt.SaveTo("images/result.jpg")
https://api.grabz.it/services/convert?key=Sign in to view your Application Key&format=jpg&delay=3000&url=https%3A%2F%2Fspacex.com%2F
grabzIt = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret") options = GrabzIt::ImageOptions.new() options.delay = 3000 grabzItClient.url_to_image("http://www.spacex.com", options) grabzItClient.save_to("images/result.jpg")
Ta technika jest szczególnie przydatna na stronach internetowych, które używają metod AJAX do ładowania treści. Najpierw użyj narzędzi programistycznych przeglądarki, aby zidentyfikować element, na który musisz poczekać, aby się pojawić, zanotuj jego identyfikator, klasę lub utwórz bardziej skomplikowany selektor CSS. Następnie określ to Selektor CSS a gdy element stanie się widoczny, strona internetowa zostanie przechwycona. Pamiętaj, że jeśli istnieje wiele pasujących elementów HTML, pojawią się one, gdy tylko jeden będzie widoczny.
GrabzItClient grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret"); ImageOptions options = new ImageOptions(); options.WaitForElement = "#Content"; grabzIt.URLToImage("http://www.spacex.com", options); grabzIt.SaveTo("images/result.jpg");
GrabzItClient grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret"); ImageOptions options = new ImageOptions(); options.setWaitForElement("#Content"); grabzIt.URLToImage("http://www.spacex.com", options); grabzIt.SaveTo("images/result.jpg");
<script src="https://cdn.jsdelivr.net/npm/@grabzit/js@3.5.2/grabzit.min.js"></script>
<script>
GrabzIt("Sign in to view your Application Key").ConvertURL("http://www.spacex.com",
{"waitfor": "#Content"}).Create();
</script>
var grabzit = require('grabzit'); var client = new grabzit("Sign in to view your Application Key", "Sign in to view your Application Secret"); var options = {"waitForElement":"#Content"}; client.url_to_image("http://www.spacex.com", options); client.save_to("images/result.jpg", function (error, id){ if (error != null){ throw error; } });
$grabzIt = GrabzItClient->new("Sign in to view your Application Key", "Sign in to view your Application Secret"); $options = GrabzItImageOptions->new(); $options->waitForElement("#Content"); $grabzIt->URLToImage("http://www.spacex.com", $options); $grabzIt->SaveTo("images/result.jpg");
$grabzIt = new \GrabzIt\GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret"); $options = new \GrabzIt\GrabzItImageOptions(); $options->setWaitForElement("#Content"); $grabzIt->URLToImage("http://www.spacex.com", $options); $grabzIt->SaveTo($filepath);
grabzIt = GrabzItClient.GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret") options = GrabzItImageOptions.GrabzItImageOptions() options.waitForElement = "#Content" grabzIt.URLToImage("http://www.spacex.com", options) grabzIt.SaveTo("images/result.jpg")
https://api.grabz.it/services/convert?key=Sign in to view your Application Key&format=jpg&waitfor=%23Content&url=https%3A%2F%2Fspacex.com%2F
grabzIt = GrabzIt::Client.new("Sign in to view your Application Key", "Sign in to view your Application Secret") options = GrabzIt::ImageOptions.new() options.waitForElement = "#Content" grabzItClient.url_to_image("http://www.spacex.com", options) grabzItClient.save_to("images/result.jpg")
Technikę tę można stosować w połączeniu ze wspomnianą wcześniej metodą opóźnienia. Umożliwia poczekanie na pojawienie się elementu HTML, a następnie odczekanie dodatkowego czasu przed utworzeniem przechwytywania.