看来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日

【Nodejs】使用request批量下载MP3,文件数量内容都没问题的更多相关文章

  1. 【Nodejs】使用http.request批量下载MP3,发现网络文件大于1000K时下载文件为0K

    这又一次让我对http.request产生质疑 //====================================================== // 喜爱123四年级上英语MP3下载 ...

  2. 抓取分析网页批量下载评书(3)之批量下载mp3

         本系列目录:    <1.搜索有声小说>    <2.分析详细页地址>     <3.批量下载mp3>      本篇是大结局,看过前两篇的放心吧,不会有 ...

  3. Python3 根据m3u8下载视频,批量下载ts文件并且合并

    Python3 根据m3u8下载视频,批量下载ts文件并且合并 m3u8是苹果公司推出一种视频播放标准,是一种文件检索格式,将视频切割成一小段一小段的ts格式的视频文件,然后存在服务器中(现在为了减少 ...

  4. 批量修改mp3文件的title等

    批量修改mp3文件的title等 不是改文件名哦: 下载地址:https://mp3tag.en.softonic.com/ 帮助文档:file:///C:/Program%20Files%20(x8 ...

  5. Aras Innovator客户端批量下载关联文件

    <button onclick="btnDownload();" id="downfilebtn">批量下载关联文件</button> ...

  6. ANDROID_MARS学习笔记_S01原始版_021_MP3PLAYER001_下载mp3文件

    一.简介 1.在onListItemClick()中new Intent,Intent以存储序列化后的mp2Info对象作为参数,启动serivce 2.DownloadService在onStart ...

  7. 【数据下载】利用wget命令批量下载ftp文件和文件夹

    这是一个“”数据大发现”的时代,大家都在创造数据,使用数据以及分享数据,首先一步我们就需要从数据库download我们需要的数据. Ftp是一种常见的在线数据库,今天介绍一种可以批量下载文件夹的方法, ...

  8. 047_批量下载有序文件(pdf、图片、视频等等)

    #!/bin/bash#本脚本准备有序的网络资料进行批量下载操作(如 01.jpg,02.jpg,03.jpg)#设置资源来源的域名连接 url="http://www.test.com/& ...

  9. Java实现批量下载选中文件功能

    1.在action中定义变量 ? 1 2 3 4 5 6 private List<String> downLoadPaths = new ArrayList<String>( ...

随机推荐

  1. swift笔记(二) —— 运算符

    基本运算符 Swift支持大部分的标准C语言的操作符,而且做了一些改进,以帮助开发人员少犯低级错误,比方: 本该使用==的时候,少写了个=, if x == y {-} 写成了 if x = y {- ...

  2. AutoMapper在MVC中的运用03-字典集合、枚举映射,自定义解析器

    本篇AutoMapper使用场景: ※ 源字典集合转换成目标字典集合 ※ 枚举映射 ※ 自定义解析器 ※ 源中的复杂属性和Get...方法转换成目标属性 源字典集合转换成目标字典集合 □ Domain ...

  3. 利用MPMoviePlayerViewController 播放视频 iOS

    方法一: @property (nonatomic, strong) MPMoviePlayerController *player; NSString *url = [[NSBundle mainB ...

  4. iOS: 计算 UIWebView 的内容高度

    - (void)webViewDidFinishLoad:(UIWebView *)wb { //方法1 CGFloat documentWidth = [[wb stringByEvaluating ...

  5. java算法实现树型目录反向生成(在指定的盘符或位置生成相应的文件结构)

    http://www.cnblogs.com/interdrp/p/6702482.html 由于此次文件管理系统的升级确实给我们带来了很多方便且在性能上有很大提升,经过这段时间的使用 也发现了些问题 ...

  6. 美国恐怖故事第一季/全集American Horror Story 1全迅雷下载

    第一季 American Horror Story Season 1 (2011)看点:心理治疗师Ben(迪伦·麦克德莫特 Dylan McDermott 饰)因与女学生有染被妻子Vivien(康妮· ...

  7. iTunes Connect开发者指南中的一个疑问

    iTunes Connect Developer Guide     避免app版本出现在iClound中,我的疑问是对已经上架的版本不能设置,那么这个功能的真正意义在哪里? 大部分用户去应用页面下载 ...

  8. 禁止MT在公式后面自动添加一个空格

    开始 > 运行,或者win+R,然后输入 regedit,打开注册表编辑器.展开到HKEY_CURRENT_USER\Software\Design Science\DSMT6\WordComm ...

  9. Intel的AVX2指令集解读

    原文链接:http://blog.csdn.net/vbskj/article/details/38408213 在Intel Sandy Bridge微架构中,Intel引入了256位SIMD扩展A ...

  10. MySQL global Log

    mysql> show variables like "%general_log%"; +------------------+----------------------- ...