Tools om het web vast te leggen en te converteren

Hoe wacht je totdat een webpagina wordt geladen voordat je een opname uitvoert?

Een item op een webpagina dat na de hoofdinhoud wordt geladen

Bij sommige webpagina's kan het even duren voordat ze zijn geladen of als ze specifieke inhoud bevatten interested in die kan worden geladen nadat de hoofdpagina is geladen. Dit geldt vooral voor AJAX-webpagina's waar inhoud wordt geladen via JavaScript.

GrabzIt detecteert wanneer een webpagina wordt geladen, maar voor sommige van de specifieke hierboven genoemde omstandigheden heeft het enkele aanvullende instructies nodig in de vorm van een vertraging die moet worden gebruikt voordat de opname wordt gemaakt of door te wachten tot een gespecificeerd HTML-element verschijnt voordat de opname zou moeten plaatsvinden vooruit. Deze technieken kunnen worden gebruikt als u schermafbeeldingen van webpagina's maakt of HTML converteert into PDF's, afbeeldingen of Word-documenten, en je hebt een premiumpakket. Beide technieken zijn echter beperkt tot een maximale wachttijd van dertig seconden.

Het is een goed idee om geen te grote vertraging te gebruiken, omdat in het ongebruikelijke geval dat opnames in de wachtrij staan, een grote vertraging de opnameprioriteit zal verminderen, hoewel er enige slimme work-arounds hieraan.

Deze functies zijn ook beschikbaar in onze online-screenshot en webschraper gereedschap.

Hoe kan ik een bepaalde tijd wachten voordat ik een opname uitvoer?

Geef gewoon de vertraging op in milliseconden en dit is hoe lang de opname zal wachten. Bedenk dat er 1000 milliseconden in een seconde zitten. Alle onderstaande voorbeelden wachten drie seconden voordat ze de webpagina vastleggen.

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

Hoe kan ik wachten tot een HTML-element verschijnt voordat ik een opname uitvoer?

Deze techniek is vooral handig op webpagina's die AJAX-methoden gebruiken om inhoud te laden. Gebruik eerst de ontwikkelaarstools van uw browser om het element te identificeren waarop u moet wachten voordat het verschijnt, noteer de id, klasse of maak een ingewikkeldere CSS-selector. Geef dit dan aan CSS-selector en zodra het element zichtbaar wordt, wordt de webpagina vastgelegd. Houd er rekening mee dat als er meerdere overeenkomende HTML-elementen zijn, deze zullen verschijnen zodra er één zichtbaar is.

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

Deze techniek kan worden gebruikt in combinatie met de eerst genoemde vertragingsmethode. Hiermee kunt u wachten tot een HTML-element verschijnt en vervolgens nog een tijdje wachten voordat u de opname maakt.