Strumenti per acquisire e convertire il Web

Come attendere il caricamento di una pagina Web prima di eseguire un'acquisizione?

Un elemento su una pagina web che viene caricato dopo il contenuto principale

Alcune pagine web possono richiedere del tempo per essere caricate o avere contenuti specifici intinteressato che potrebbe caricarsi dopo il caricamento della pagina principale. Ciò è particolarmente vero per le pagine Web pesanti AJAX in cui il contenuto viene caricato tramite JavaScript.

GrabzIt rileva quando viene caricata una pagina web ma per alcune delle circostanze specifiche sopra elencate necessita di alcune istruzioni aggiuntive sotto forma di un ritardo da utilizzare prima che venga eseguita l'acquisizione o aspettando che appaia un elemento HTML specifico prima che l'acquisizione venga eseguita avanti. Queste tecniche possono essere utilizzate se si acquisiscono screenshot di pagine Web o si converte HTML into PDF, immagini o documenti Word e hai un pacchetto premium. Tuttavia entrambe le tecniche sono limitate a un tempo di attesa massimo di trenta secondi.

È una buona idea non utilizzare un ritardo troppo grande poiché, nell'insolito caso in cui le acquisizioni vengono messe in coda, un ritardo elevato ridurrà la priorità di acquisizione, sebbene vi siano alcuni soluzioni intelligenti a questa.

Queste funzionalità sono disponibili anche nel nostro schermata in linea o raschietto web strumenti.

Come attendere un tempo specificato prima di eseguire un'acquisizione?

Basta specificare il ritardo in millisecondi e questo è il tempo che attenderà l'acquisizione. Ricorda che in un secondo ci sono 1000 millisecondi. Tutti gli esempi seguenti attendono tre secondi prima di acquisire la pagina web.

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")

Come attendere la visualizzazione di un elemento HTML prima di eseguire un'acquisizione?

Questa tecnica è particolarmente utile sulle pagine Web che utilizzano metodi AJAX per caricare il contenuto. Per prima cosa utilizza gli strumenti di sviluppo del tuo browser per identificare l'elemento che devi attendere per apparire, prendi nota del suo ID, classe o crea un selettore CSS più complicato. Quindi specifica questo Selettore CSS e una volta che l'elemento diventa visibile, la pagina web viene catturata. Tieni presente che se sono presenti più elementi HTML corrispondenti, verranno visualizzati non appena ne sarà visibile uno.

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")

Questa tecnica può essere utilizzata insieme al metodo di ritardo menzionato prima. Permettendoti di attendere la visualizzazione di un elemento HTML e quindi attendere un ulteriore periodo di tempo prima di creare l'acquisizione.