Heim > Artikel > Web-Frontend > Nodejs implementiert den Batch-Download von Mädchenbildern_node.js
Ich habe gehört, dass das Herunterladen von Bildern von Mädchen in letzter Zeit sehr beliebt ist?
Nodejs (javascrpt) können natürlich nicht hinterherhinken~
Obwohl ich noch nie ein anständiges Nodejs-Programm geschrieben habe, bin ich als Frontend-Student, der zumindest das Buch gelesen hat, mit Nodejs recht vertraut~
Ich habe ein wenig Zeit damit verbracht, zu lernen, wie man Webseiten erhält und Dateien in Nodejs herunterlädt, und habe diesen halbfertigen Downloader geschrieben, als ich nichts hatte, womit ich herumspielen konnte
Verwendung:
1) Erstellen Sie ein neues Download-Verzeichnis
2) Erstellen Sie eine neue download.js (benennen Sie sie tatsächlich nach Ihren Wünschen) und kopieren Sie sie in das Download-Verzeichnis
3) Kopieren Sie die beiden Codeteile in download.js
4) Öffnen Sie das Befehlszeilentool und ändern Sie das aktuelle Verzeichnis in das Download-Verzeichnis
5) Geben Sie in der Befehlszeile ein: node download.js
6) Ich warte darauf, Bilder von Mädchen zu erhalten~
Einfaches Mädchenbildobjekt (neu hinzugefügte Unterstützung für automatischen Download)
var http = require('http'); var fs = require('fs'); function Mzitu(options) { this.id = 1; this.initialize.call(this, options); return this; } Mzitu.prototype = { constructor: Mzitu, initialize: function _initialize(options) { this.baseUrl = options.baseUrl; this.dir = options.dir || ''; this.reg = options.reg; this.total = options.total; this.page = options.from || 1; }, start: function _start() { this.getPage(); }, getPage: function _getPage() { var self = this, data = null; if (this.page <= this.total) { http.get(this.baseUrl + this.page, function (res) { res.setEncoding("utf8"); res.on('data', function (chunk) { data += chunk; }).on('end', function () { self.parseData(data); }); }); } }, parseData: function _parseData(data) { var res = [], match; while ((match = this.reg.exec(data)) != null) { res.push(match[1]); } this.download(res); }, download: function _download(resource) { var self = this, currentPage = self.page; resource.forEach(function (src, idx) { var filename = src.substring(src.lastIndexOf('/') + 1), writestream = fs.createWriteStream(self.dir + filename); http.get(src, function (res) { res.pipe(writestream); }); writestream.on('finish', function () { console.log('page: ' + currentPage + ' id: ' + self.id++ + ' download: ' + filename); }); }); self.page++; self.getPage(); } };
So starten Sie den Download von Mädchenbildern
var mzitu = new Mzitu({ baseUrl: 'http://www.mzitu.com/share/comment-page-', dir: '', reg: /<img\s*src="(.*?)"\s*alt=".*"\s*\/>/g, total: 141, from: 1 }); mzitu.start();
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.