zoukankan      html  css  js  c++  java
  • 【Nodejs】使用request批量下载MP3,文件数量内容都没问题

    看来request远强于http.request是毋庸置疑的了。

    代码如下:

    //======================================================
    // 喜爱123四年级上英语MP3下载爬虫1.00,使用requests
    // http.request可信度不高
    // 2018年5月10日
    //======================================================
    var fs=require('fs');// 文件处理模块
    
    function downloadMp3(url){
        var request = require('request');
        var req = request(url, {timeout: 10000, pool: false});
        req.setMaxListeners(50);
        req.setHeader('user-agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36');
    
        req.on('error', function(err) {
            throw err;
        });
        req.on('response', function(res) {
            res.setEncoding("binary");
            var fileData = "";
    
            res.on('data', function (chunk) {
                fileData+=chunk; 
            });
            res.on('end',function(){
                var name=url.slice(url.lastIndexOf("/"));
                var fileName="./"+name;
    
                fs.writeFile(fileName, fileData, "binary", function(err){
                    if(err){
                        console.log("[downloadPic]文件   "+fileName+"  下载失败.");
                        console.log(err);
                    }else{
                        console.log("文件"+fileName+"下载成功");
                    }
                });  
            });
        })
    }
    
    //-------------------------------
    // 入口函数
    //-------------------------------
    function main(){
        var profix='http://ting.xiai123.com/mp3/kewen/wysyy4s/Module0';
        var appendixs=['Unit1','Unit2','Words'];
    
        for(var i=1;i<10;i++){
            for(var j=0;j<appendixs.length;j++){
                var url=profix+i+'_'+appendixs[j]+".mp3";
                downloadMp3(url);
            }
        }
    
        
        //downloadMp3('http://ting.xiai123.com/mp3/kewen/wysyy4s/Module01_Unit2.mp3');
    }
    
    // 开始
    main();

    2018年5月10日

  • 相关阅读:
    倍增或线段树,给出一个数,让它模一连串的数
    江西财经大学第一届程序设计竞赛
    L2-027. 名人堂与代金券
    hdu 3038 给区间和,算出多少是错的
    cf166e 在四面体上寻找路线数 递推,取模
    cf946d 怎样逃最多的课dp
    PAM练习
    PAM模板
    E. Erase Subsequences dp
    CSU2004:Finding words(含指定不相交前后缀的模式串计数)
  • 原文地址:https://www.cnblogs.com/heyang78/p/9019334.html
Copyright © 2011-2022 走看看