Ich bin neu bei NodeJs und NightmareJs. Ich muss mehrere Dateien von der gleichen Seite mit dem nightmare-inline-download Plugin herunterladen. Bis jetzt kann mein Code unten die erste Datei herunterladen. Aber ich kann nicht herausfinden, wie man alle mit der Seite verbundenen Dateien herunterlädt, das heißt, wie man click(selector).download()
in der richtigen Weise umschlingt. Außerdem, wie werde ich bei den geloopten Downloads nachgeben, um alle heruntergeladenen Dateinamen zu erhalten?Wie kann ich mehrere Dateien mit NighmareJs seriell herunterladen?
Beachten Sie die HTML <a>
Tags, die ich klicken muss: <a target="_blank" class="download-link">Download</a>
. Es gibt kein href
Attribut; Durch Klicken auf das Tag wird ein Skript ausgelöst, das den Download startet.
Die Website erlaubt nur einen Download zu der Zeit zu starten.
Hier ist mein Code so weit:
var Nightmare = require('nightmare');
require('nightmare-inline-download')(Nightmare);
var nightmare = Nightmare({ show: false });
nightmare
.goto(pageUrl)
.evaluate({
var links = document.querySelectorAll('.download-link');
for(var i = 0, i < links.length; i++) {
links[i].setAttribute('download-this', 'true');
}
})
.click('[download-this="true"]') // will select just the first element
.download()
.end()
.then(() => {
console.log('done');
});