Heim  >  Artikel  >  Web-Frontend  >  Nodejs implementiert den Batch-Download von Mädchenbildern_node.js

Nodejs implementiert den Batch-Download von Mädchenbildern_node.js

WBOY
WBOYOriginal
2016-05-16 15:57:361496Durchsuche

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="(.*&#63;)"\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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn