Gå til innhold

Laste inn hele siden med PhantomJS


Anbefalte innlegg

eller CasperJS.

 

Jeg prøver meg litt med PhantomJS, men har et elementært problem.

Når jeg tester koden under så lastes kun bildene fra første 'side'.

Hvordan får jeg lastet alt?

 

var page = require('webpage').create();
page.viewportSize = {width: 1024, height: 768};
page.open('https://www.vg.no', function(status) {
	console.log("Status: " + status);
	if(status === "success") {
		page.render('vg.png');
	}
	phantom.exit();
});
 
Lenke til kommentar
Videoannonse
Annonse

Det med å øke høyden virker noen plasser, men ikke alltids, og jeg vet ikke om siden vil ha en total høyde på 20 000, eller 200 000.

 

Dette er hva jeg vår når jeg tester på vg sine sider:

https://i.imgur.com/w3BoKuU.jpg

 

Jeg vil tro scrolling kan virke, men jeg vet ikke helt hvordan.

Når jeg prøvde det her om dagen, så fikk jeg kun til å laste top, og bunn, ikke det i mellom, så jeg gjorde noe feil der (og slettet derfor koden jeg hadde).

Lenke til kommentar

Kan ta utdrag fra kode som jeg har brukt før for og scrolle nedover.

Bruker her PhantomJS() fra Selenium.

Scroller her nedover på en men verdi satt i window.scrollTo().

Høyere vill verdi scrolle lenger av gangen,

så lager her egne sider på websider som ikke har det f.eks infinite scrolling.

driver = webdriver.PhantomJS()
driver.set_window_size(1120, 550)
driver.get(url)
for page in range(page_count):
    page_source = driver.page_source
    driver.execute_script("window.scrollTo(0,100000000000);")
Endret av snippsat
Lenke til kommentar

Jeg tror jeg kom fram til en løsning:

var url = 'https://vg.no';
var viewWidth = 1024;
var viewHeight = 768;

var casper = require('casper').create();
casper.options.viewportSize = {width: viewWidth, height: viewHeight};

casper.start(url, function() {
	var scrollCount = 1;
	var scrollMax = this.evaluate(function () { return document.body.scrollHeight; });
	this.repeat(Math.floor(scrollMax/viewHeight), function() {
		this.wait(200, function() {
			scrollCount++;
			this.scrollTo(0, scrollCount*viewHeight);
		});
	});
});

casper.then(function() {
	this.capture("vg.png");
});

casper.run();
 
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...