Dinamik çağrı sitelerini Nightmare/Electron ile kazımaya çalışıyorum. Bir kabus görmenin bir yolunu görmüyorum ... kabus fonksiyonlarına VEYA zincire bir çağrı mantığı ile çağrıları değerlendirene kadar.Kabus/Elektron ile dinamik sayfalama (sayfa kazıma)
Basit bir kod örneği, yalnızca bir deyimi Googles ve sonuç sayfalarını sayfa 1'den döndürür. Bu kodun sonuçlardaki her sayfa için devam etmesini istiyorum.
var Nightmare = require('nightmare');
var vo = require('vo');
vo(function*() {
var nightmare = Nightmare({ show: true });
var links = yield nightmare
.goto('http://www.google.com')
.wait('input[title="Search"]')
.click('input[title="Search"]')
.type('input[title="Search"]', 'Anequim Project')
.click('input[name="btnK"]')
.wait(600)
.evaluate(function(){
var linkArray = [];
var links = document.querySelectorAll('h3.r a');
for (var i = 0; i < links.length; ++i) {
linkArray.push(links[i].getAttribute('href'));
}
return linkArray;
});
yield nightmare.end();
return links;
})(function (err, result) {
if (err) return console.log(err);
console.log(result);
});
Bağlantılar [0] ile neden, neden sadece ilk bağlantı? – TheAnimatrix
@ TheAnimatrix kısaltması için örnek, google tarafından döndürülen her sayfanın ilk bağlantısını döndürür. –
tamam ben bir çeşit bir hata olduğunu düşündüm, ama bu çözüm ile bir sorun var, son sayfa, bu konu üzerine tökezlerse, o zaman onlar sadece links.push() işlevi dışında kopyalamak gerekir döngüde iken, son sayfayı telafi etmek için bir kez daha çalışabilir – TheAnimatrix