//======================================================
// 理想论坛帖子下载爬虫1.09
// 使用断点续传模式,因为网络传输会因各种原因中断
// 2018年5月4日
//======================================================
var http=require("http");            // http模块
var zlib = require('zlib');            // 用于解析gzip网页
var fs=require('fs');                // 文件处理模块
var iconv = require('iconv-lite');    // 用于转码。
var cheerio = require("cheerio");    // 用于从HTML中以类似jquery方式查找目标
var async=require('async');            // 用于异步流程控制
var EventProxy = require('eventproxy');// 用来控制并发
var BufferHelper = require('bufferhelper');// 用于拼接chunk

//--- 下面为全局变量 ---
var folder;// 存文件的目录
var topics=[]; // 帖子数组
var finalTopics=[];// 所有帖子加子贴的最终数组
var failedTopics=[]; // # 失败的帖子数组

//-------------------------------
// 用于创建目录
//-------------------------------
function createFolder(){
    console.log('准备创建目录');

    folder=currDateTime();
    fs.mkdir('./'+folder,function(err){
        if(err){
            console.log("目录"+folder+"创建失败,因为"+err);
        }else{
            console.log("目录"+folder+"已创建");
        }
    });
}

//-------------------------------
// 浏览页面找主贴
// start:开始页,end:结束页
//-------------------------------
function findTopics(start,end){
    console.log('准备从以下页面寻找主贴');

    for(var i=start;i<=end;i++){
        pageUrl='http://www.55188.com/forum-8-'+i+'.html'
        findTopicsInPage(pageUrl);
    }
}

//-------------------------------
// 找到每个论坛页中的帖子
// pageUrl:论坛页的地址
//-------------------------------
function findTopicsInPage(pageUrl){
    console.log("page="+pageUrl);

    var currUrl=pageUrl.replace("http://","");
    var pos=currUrl.indexOf("/");
    var hostname=currUrl.slice(0,pos);
    var path=currUrl.slice(pos);
    pos=currUrl.lastIndexOf("/");
    var dir="http://"+currUrl.slice(0,pos);

    var options={
        hostname:hostname,
            port:80,
            path:path,
          method:'GET',
    };

    var req=http.request(options,function(resp){
        var html = [];

        resp.on("data", function(data) {
            html.push(data);
        })
        resp.on("end", function() {
            var buffer = Buffer.concat(html);

            var body = iconv.decode(buffer,'gb2312');
            var $ = cheerio.load(body);

            $("tbody").each(function(index,element){
                var $tbody=cheerio.load($(element).html());

                var topic={};
                topic.pageCount=1;
                topic.url=null;
                topic.title=null;

                $tbody(".forumdisplay a").each(function(index,element){
                    var topicUrl='http://www.55188.com/'+$tbody(element).attr("href");
                    var topicTitle=$tbody(element).text();

                    topic.url=topicUrl
                    topic.title=topicTitle;
                })

                $tbody(".threadpages").each(function(index,element){
                    topic.pageCount=$tbody(element).children().last().text();
                })

                if(topic.url!=null && topic.title!=null){
                    topics.push(topic);
                }
            })
        }).on("error", function(err) {
            console.log("findTopicsInPage函数请求后获取响应时出现异常"+err);
        })
    });

    // 超时处理
    req.setTimeout(7500,function(){
        req.abort();
    });

    // 出错处理
    req.on('error',function(err){
        console.log('findTopicsInPage函数请求时发生错误'+err);
    });

    // 请求结束
    req.end();
}

//-------------------------------
// 保存每个帖子到文件,完成一个递归调自己一次
// Nodejs特殊的回调处理使循环递归化
//-------------------------------
function saveTopicDetails(){
    if(finalTopics.length>0){
        var topic=finalTopics.pop();

        var request = require('request');
        var req = request(topic.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) {
            var text=nowTime()+"saveTopicDetails函数请求时出现异常"+err+'\n';
            text+=nowTime()+" url="+topic.url+'\n';
            text+=nowTime()+" title="+topic.title+'\n';
            text+=nowTime()+" index="+topic.index+'\n';
            console.log(coloredText(text,'red'));
            ///
            failedTopics.push(topic);
            saveTopicDetails();//出错后依旧递归
        });
        req.on('response', function(res) {
            var bufferHelper = new BufferHelper();
            res.on('data', function (chunk) {
                bufferHelper.concat(chunk);
            });
            res.on('end',function(){
                var body = iconv.decode(bufferHelper.toBuffer(),'GBK');

                var infos= getInfosFrom(body,topic);

                if(infos.length>0){
                    filename='./'+folder+'/'+topic.index+'.json';
                    saveInfosTo(filename,infos,topic);
                }

                if(topic.index % 50==0){
                    console.log(coloredText(nowTime()+'处理到第'+topic.index+'个文件','green'));//让控制台出点动静

                    var savefilename="./save.dat"
                    var saveData={'folder':folder,'finalTopics':finalTopics,'failedTopics':failedTopics}

                    fs.writeFile(savefilename,JSON.stringify(saveData),function(err){
                        if(err){
                            console.log(coloredText(nowTime()+'在函数saveInfosTo中写入文件'+savefilename+'失败,因为'+err,'red'));
                        }
                    });
                }

                saveTopicDetails();//一个帖子完成,递归一次
            });
        })
    }
}

//-------------------------------
// 把内容数组保存到文件
// filename:文件名,infos:内容数组,topic:帖子
//-------------------------------
function saveInfosTo(filename,infos,topic){
    fs.writeFile(filename,JSON.stringify(infos),function(err){
        if(err){
            console.log(coloredText(nowTime()+'在函数saveInfosTo中写入文件'+filename+'失败,因为'+err,'red'));
        }
    });

    // 判断文件是否存在
    /*fs.exists(filename,function(exists){
        if(exists){
            console.log(coloredText(nowTime()+"已经存在url="+topic.url+",index="+topic.index+"对应的文件",'yellow'));
        }else{
            if(infos.length>0){
                fs.writeFile(filename,JSON.stringify(infos),function(err){
                    if(err){
                        console.log(coloredText(nowTime()+'在函数saveInfosTo中写入文件'+filename+'失败,因为'+err,'red'));
                    }
                });
            }
        }
    });*/
}

//-------------------------------
// 找到帖子内容,返回内容数组
// body:网页HTML全文,topic:帖子
//-------------------------------
function getInfosFrom(body,topic){
    var $ = cheerio.load(body);
    var infos=[];// 获得的发帖人信息

    $(".postcontent").each(function(index,element){
        var $td=cheerio.load($(element).html());
        var info={    'url':topic.url,
                    'title':topic.title,
                    '楼层':'none',
                    '作者':'none',
                    '日期':'none',
                    '时间':'none',
                    '内容':'none',};

        // 得到发帖人信息
        $td(".postinfo").each(function(index,element){
            var content=$td(element).text();
            content=content.replace(/\s+/g,' ');// 空白字符替换为一个空格
            var arr=content.split(" ");// 以空格劈分

            if(arr.length==7){
                info['楼层']=arr[1];
                info['作者']=arr[2].replace('只看:','');
                info['日期']=arr[4];
                info['时间']=arr[5];

            }else if(arr.length==8){
                info['楼层']=arr[1];
                info['作者']=arr[2].replace('只看:','');
                info['日期']=arr[5];
                info['时间']=arr[6];
            }
        })

        // 得到发帖内容
        var isGotContent=false;
        $td(".postmessage .t_msgfont .t_msgfont").each(function(index,element){
            info['内容']=$td(element).text();
            isGotContent=true;
        })

        // 作者被屏蔽,没取到的情况
        if(isGotContent==false){
            // 作者被禁止或删除 内容自动屏蔽
            $td(".postmessage .notice").each(function(index,element){
                info['内容']=$td(element).text();
            })
        }

        // 找齐七颗龙珠才算完成任务,作者,内容作为代表
        if(info['作者']!='none' && info['内容']!='none'){
            infos.push(info);
        }
    })

    return infos;
}

//-------------------------------
// 【新的开始】函数
// start:起始页,从1开始
// end:终止页,>start
//-------------------------------
function newGame(start,end){
    var flow=require('nimble');

    flow.series([
        function(callback){
            setTimeout(function(){
                createFolder();
                callback();
            },100);
        },

        function(callback){
            setTimeout(function(){
                findTopics(start,end);
                callback();
            },100);
        },

        function(callback){
            setTimeout(function(){
                var n=topics.length;
                console.log("共找到"+n+"个帖子");

                // 获得每个子贴所在地址,序号和标题
                var index=0;
                var arr=[];
                for(var i=0;i<n;i++){
                    var topic=topics[i];

                    for(var j=1;j<=topic.pageCount;j++){
                        var regexp=new RegExp(/-(\d+)-(\d+)-(\d+)/);
                        var topicUrl=topic.url.replace(regexp,"-$1-"+j+"-$3");// 用正则表达式替换第二个数字

                        var item={'index':index,'url':topicUrl,'title':topic.title};
                        arr.push(item);

                        index++;
                    }
                }

                finalTopics=arr;// 所有帖子加子贴的最终数组
                finalTopics.reverse();
                console.log('拟生成文件'+finalTopics.length+'个');

                saveTopicDetails();

                callback();
            },3000);
        },
    ]);
}

//--------------------------------------
// 【再续前缘】函数
//--------------------------------------
function load(){
    fs.readFile('./save.dat','utf8',function(err,data){
        if(err){
            console.log('函数load里读取文件save.dat失败,因为'+err);
        }else{
            var savedData=JSON.parse(data);

            folder=savedData.folder;
            fs.exists('./'+folder,function(exists){
                if(exists==false){
                    // 创建目录
                    fs.mkdir('./'+folder,function(err){
                        if(err){
                            console.log("目录"+folder+"已经存在");
                        }
                    });
                }
            });

            finalTopics=savedData['finalTopics'];
            console.log('上次未完成列表中有'+finalTopics.length+'个文件');

            failedTopics=savedData['failedTopics'];
            console.log('上次下载失败列表中有'+failedTopics.length+'个文件');

            finalTopics=finalTopics.concat(failedTopics);// 曾经下载不了的融合到全部中继续下载
            failedTopics=[];

            console.log('拟生成文件'+finalTopics.length+'个');
            saveTopicDetails();
        }
    });
}

//--------------------------------------
// 通用函数,返回当前日期时间 创建目录用
//--------------------------------------
function currDateTime() {
    var date = new Date();
    var seperator1 = "-";
    var seperator2 = "_";
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    if (month >= 1 && month <= 9) {
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
    }
    var currentdate =date.getFullYear() + seperator1 + month + seperator1 + strDate
            + " " + date.getHours() + seperator2 + date.getMinutes()
            + seperator2 + date.getSeconds();
    return currentdate;
}

//--------------------------------------
// 通用函数,返回当前日期时间 控制台输出时间用
//--------------------------------------
function nowTime() {
    var date = new Date();
    var seperator1 = "-";
    var seperator2 = ":";
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    if (month >= 1 && month <= 9) {
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
    }
    var currentdate =date.getFullYear() + seperator1 + month + seperator1 + strDate
            + " " + date.getHours() + seperator2 + date.getMinutes()
            + seperator2 + date.getSeconds()+ " ";
    return currentdate;
}

//-------------------------------
// 得到带颜色(前景色)的文字,用于在控制台输出
// text:文字,color:前景色
//-------------------------------
function coloredText(text,color){
    var dic = new Array();

    dic["white"] = ['\x1B[37m', '\x1B[39m'];
    dic["grey"] = ['\x1B[90m', '\x1B[39m'];
    dic["black"] = ['\x1B[30m', '\x1B[39m'];
    dic["blue"] = ['\x1B[34m', '\x1B[39m'];
    dic["cyan"] = ['\x1B[36m', '\x1B[39m'];
    dic["green"] = ['\x1B[32m', '\x1B[39m'];
    dic["magenta"] = ['\x1B[35m', '\x1B[39m'];
    dic["red"] = ['\x1B[31m', '\x1B[39m'];
    dic["yellow"] = ['\x1B[33m', '\x1B[39m'];

    return dic[color][0]+text+dic[color][1];
}

//-------------------------------
// 入口函数
//-------------------------------
function main(){
    process.stdin.resume();
    process.stdout.write("\033[33m 选择【再续前缘】输入0,选择【新的开始】输入页码,以逗号分隔: \033[39m");// 草黄色
    process.stdin.setEncoding('utf8');

    process.stdin.on('data',function(text){
        var input=text.trim();
        process.stdin.end();// 退出输入状态

        if(text.trim()=='0'){
            console.log(coloredText('【再续前缘】','cyan'));
            load();
        }else{
            console.log(coloredText('【新的开始】','magenta'));
            var arr=input.split(",");
            newGame(arr[0],arr[1]);
        }
    });
}

// 开始
main();

2018年5月4日21点15分

控制台输出:

C:\Users\horn1\Desktop\node.js\66-理想论坛爬虫1.09 - insertdb.js>node lixiang.js
 选择【再续前缘】输入0,选择【新的开始】输入页码,以逗号分隔: 1,3
【新的开始】
准备创建目录
目录2018-05-06 21_36_5已创建
准备从以下页面寻找主贴
page=http://www.55188.com/forum-8-1.html
page=http://www.55188.com/forum-8-2.html
page=http://www.55188.com/forum-8-3.html
共找到210个帖子
拟生成文件9788个
2018-05-06 21:36:10 处理到第0个文件
2018-05-06 21:37:1 处理到第50个文件
2018-05-06 21:37:48 处理到第100个文件
2018-05-06 21:38:38 处理到第150个文件
2018-05-06 21:39:33 处理到第200个文件
2018-05-06 21:40:35 处理到第250个文件
2018-05-06 21:42:3 处理到第300个文件
2018-05-06 21:43:27 处理到第350个文件
2018-05-06 21:44:48 处理到第400个文件
2018-05-06 21:46:5 处理到第450个文件
2018-05-06 21:47:4 saveTopicDetails函数请求时出现异常Error: ESOCKETTIMEDOUT
2018-05-06 21:47:4  url=http://www.55188.com/thread-7233771-343-3.html
2018-05-06 21:47:4  title= 一点心语——炒股,戒急用忍!
2018-05-06 21:47:4  index=465

2018-05-06 21:47:25 处理到第500个文件
2018-05-06 21:47:58 处理到第550个文件
2018-05-06 21:48:28 处理到第600个文件
2018-05-06 21:48:55 处理到第650个文件
2018-05-06 21:49:25 处理到第700个文件
2018-05-06 21:49:56 处理到第750个文件
2018-05-06 21:50:39 saveTopicDetails函数请求时出现异常Error: ESOCKETTIMEDOUT
2018-05-06 21:50:39  url=http://www.55188.com/thread-7233771-644-3.html
2018-05-06 21:50:39  title= 一点心语——炒股,戒急用忍!
2018-05-06 21:50:39  index=766

2018-05-06 21:50:42 处理到第800个文件
2018-05-06 21:51:2 处理到第850个文件
2018-05-06 21:51:18 处理到第900个文件
2018-05-06 21:51:40 处理到第950个文件
2018-05-06 21:51:57 处理到第1000个文件
2018-05-06 21:52:15 处理到第1050个文件
2018-05-06 21:52:35 处理到第1100个文件
2018-05-06 21:53:22 处理到第1150个文件
2018-05-06 21:53:26 saveTopicDetails函数请求时出现异常Error: ESOCKETTIMEDOUT
2018-05-06 21:53:26  url=http://www.55188.com/thread-3980834-142-3.html
2018-05-06 21:53:26  title= 晓哥的投资生涯:超长线实盘贴
2018-05-06 21:53:26  index=1143

2018-05-06 21:53:46 处理到第1200个文件
2018-05-06 21:54:9 saveTopicDetails函数请求时出现异常Error: ESOCKETTIMEDOUT
2018-05-06 21:54:9  url=http://www.55188.com/thread-3980834-213-3.html
2018-05-06 21:54:9  title= 晓哥的投资生涯:超长线实盘贴
2018-05-06 21:54:9  index=1214

2018-05-06 21:54:19 saveTopicDetails函数请求时出现异常Error: ETIMEDOUT
2018-05-06 21:54:19  url=http://www.55188.com/thread-3980834-240-3.html
2018-05-06 21:54:19  title= 晓哥的投资生涯:超长线实盘贴
2018-05-06 21:54:19  index=1241

2018-05-06 21:54:19 saveTopicDetails函数请求时出现异常Error: ETIMEDOUT
2018-05-06 21:54:19  url=http://www.55188.com/thread-3980834-241-3.html
2018-05-06 21:54:19  title= 晓哥的投资生涯:超长线实盘贴
2018-05-06 21:54:19  index=1242

2018-05-06 21:54:19 saveTopicDetails函数请求时出现异常Error: ETIMEDOUT
2018-05-06 21:54:19  url=http://www.55188.com/thread-3980834-242-3.html
2018-05-06 21:54:19  title= 晓哥的投资生涯:超长线实盘贴
2018-05-06 21:54:19  index=1243

2018-05-06 21:54:19 saveTopicDetails函数请求时出现异常Error: ETIMEDOUT
2018-05-06 21:54:19  url=http://www.55188.com/thread-3980834-243-3.html
2018-05-06 21:54:19  title= 晓哥的投资生涯:超长线实盘贴
2018-05-06 21:54:19  index=1244

2018-05-06 21:54:22 处理到第1250个文件
2018-05-06 21:54:46 处理到第1300个文件
2018-05-06 21:55:6 处理到第1350个文件
2018-05-06 21:55:32 处理到第1400个文件
2018-05-06 21:55:54 处理到第1450个文件
2018-05-06 21:56:19 处理到第1500个文件
2018-05-06 21:56:56 saveTopicDetails函数请求时出现异常Error: ESOCKETTIMEDOUT
2018-05-06 21:56:56  url=http://www.55188.com/thread-3980834-515-3.html
2018-05-06 21:56:56  title= 晓哥的投资生涯:超长线实盘贴
2018-05-06 21:56:56  index=1516

2018-05-06 21:56:58 处理到第1550个文件
2018-05-06 21:57:11 处理到第1600个文件
2018-05-06 21:57:31 处理到第1650个文件
2018-05-06 21:57:44 处理到第1700个文件
2018-05-06 21:58:0 处理到第1750个文件
2018-05-06 21:58:18 处理到第1800个文件
2018-05-06 21:58:29 处理到第1850个文件
2018-05-06 21:58:51 处理到第1900个文件
2018-05-06 21:59:3 处理到第1950个文件
2018-05-06 21:59:16 处理到第2000个文件
2018-05-06 21:59:27 处理到第2050个文件
2018-05-06 21:59:48 处理到第2100个文件
2018-05-06 22:0:2 处理到第2150个文件
2018-05-06 22:0:39 处理到第2200个文件
2018-05-06 22:0:59 处理到第2250个文件
2018-05-06 22:1:14 处理到第2300个文件
2018-05-06 22:1:25 处理到第2350个文件
2018-05-06 22:1:39 处理到第2400个文件
2018-05-06 22:1:52 处理到第2450个文件
2018-05-06 22:2:12 处理到第2500个文件
2018-05-06 22:2:32 处理到第2550个文件
2018-05-06 22:2:44 处理到第2600个文件
2018-05-06 22:2:56 处理到第2650个文件
2018-05-06 22:3:4 处理到第2700个文件
2018-05-06 22:3:6 处理到第2750个文件
2018-05-06 22:3:8 处理到第2800个文件
2018-05-06 22:3:19 处理到第2850个文件
2018-05-06 22:3:31 saveTopicDetails函数请求时出现异常Error: ESOCKETTIMEDOUT
2018-05-06 22:3:31  url=http://www.55188.com/thread-7647942-78-3.html
2018-05-06 22:3:31  title= 鲁L蒲公英◆股票期货实战操盘日志 ~【荣誉不代表未来,实战在每天打响!】
2018-05-06 22:3:31  index=2859

2018-05-06 22:3:49 处理到第2900个文件
2018-05-06 22:4:9 处理到第2950个文件
2018-05-06 22:4:21 处理到第3000个文件
2018-05-06 22:4:39 处理到第3050个文件
2018-05-06 22:4:54 处理到第3100个文件
2018-05-06 22:5:11 处理到第3150个文件
2018-05-06 22:5:32 处理到第3200个文件
2018-05-06 22:5:46 处理到第3250个文件
2018-05-06 22:6:7 处理到第3300个文件
2018-05-06 22:6:26 处理到第3350个文件
2018-05-06 22:6:42 处理到第3400个文件
2018-05-06 22:6:57 处理到第3450个文件
2018-05-06 22:7:11 处理到第3500个文件
2018-05-06 22:7:30 处理到第3550个文件
2018-05-06 22:7:52 处理到第3600个文件
2018-05-06 22:8:9 处理到第3650个文件
2018-05-06 22:8:24 处理到第3700个文件
2018-05-06 22:8:36 处理到第3750个文件
2018-05-06 22:8:49 处理到第3800个文件
2018-05-06 22:9:0 处理到第3850个文件
2018-05-06 22:9:12 处理到第3900个文件
2018-05-06 22:9:27 处理到第3950个文件
2018-05-06 22:9:47 处理到第4000个文件
2018-05-06 22:10:7 处理到第4050个文件
2018-05-06 22:10:27 处理到第4100个文件
2018-05-06 22:10:40 处理到第4150个文件
2018-05-06 22:10:50 处理到第4200个文件
2018-05-06 22:11:0 处理到第4250个文件
2018-05-06 22:11:11 处理到第4300个文件
2018-05-06 22:11:24 处理到第4350个文件
2018-05-06 22:11:35 处理到第4400个文件
2018-05-06 22:11:48 处理到第4450个文件
2018-05-06 22:12:2 处理到第4500个文件
2018-05-06 22:12:16 处理到第4550个文件
2018-05-06 22:12:32 处理到第4600个文件
2018-05-06 22:12:35 saveTopicDetails函数请求时出现异常Error: ESOCKETTIMEDOUT
2018-05-06 22:12:35  url=http://www.55188.com/thread-7565734-179-2.html
2018-05-06 22:12:35  title= 新实盘开七年(12年盈利8倍,13年盈利6倍,14年盈利11倍,15年盈利10倍,计划16年10倍)
2018-05-06 22:12:35  index=4577

2018-05-06 22:12:44 处理到第4650个文件
2018-05-06 22:12:58 处理到第4700个文件
2018-05-06 22:13:1 saveTopicDetails函数请求时出现异常Error: ESOCKETTIMEDOUT
2018-05-06 22:13:1  url=http://www.55188.com/thread-7565734-273-2.html
2018-05-06 22:13:1  title= 新实盘开七年(12年盈利8倍,13年盈利6倍,14年盈利11倍,15年盈利10倍,计划16年10倍)
2018-05-06 22:13:1  index=4671

2018-05-06 22:13:1 saveTopicDetails函数请求时出现异常Error: ESOCKETTIMEDOUT
2018-05-06 22:13:1  url=http://www.55188.com/thread-7565734-272-2.html
2018-05-06 22:13:1  title= 新实盘开七年(12年盈利8倍,13年盈利6倍,14年盈利11倍,15年盈利10倍,计划16年10倍)
2018-05-06 22:13:1  index=4670

2018-05-06 22:13:10 处理到第4750个文件
2018-05-06 22:13:20 处理到第4800个文件
2018-05-06 22:13:29 处理到第4850个文件
2018-05-06 22:13:40 处理到第4900个文件
2018-05-06 22:13:49 处理到第4950个文件
2018-05-06 22:14:0 处理到第5000个文件
2018-05-06 22:14:17 处理到第5050个文件
2018-05-06 22:14:29 处理到第5100个文件
2018-05-06 22:14:43 处理到第5150个文件
2018-05-06 22:14:48 处理到第5200个文件
2018-05-06 22:14:49 处理到第5250个文件
2018-05-06 22:14:50 处理到第5300个文件
2018-05-06 22:14:51 处理到第5350个文件
2018-05-06 22:14:53 处理到第5400个文件
2018-05-06 22:14:54 处理到第5450个文件
2018-05-06 22:14:54 saveTopicDetails函数请求时出现异常Error: ESOCKETTIMEDOUT
2018-05-06 22:14:54  url=http://www.55188.com/thread-8158615-167-2.html
2018-05-06 22:14:54  title= 未来牛市会以什么方式运行?
2018-05-06 22:14:54  index=5020

2018-05-06 22:14:55 处理到第5500个文件
2018-05-06 22:14:58 处理到第5550个文件
2018-05-06 22:15:9 处理到第5600个文件
2018-05-06 22:15:19 处理到第5650个文件
2018-05-06 22:15:27 处理到第5700个文件
2018-05-06 22:15:34 处理到第5750个文件
2018-05-06 22:15:41 处理到第5800个文件
2018-05-06 22:15:51 处理到第5850个文件
2018-05-06 22:16:2 处理到第5900个文件
2018-05-06 22:16:3 处理到第5950个文件
2018-05-06 22:16:4 处理到第6000个文件
2018-05-06 22:16:5 处理到第6050个文件
2018-05-06 22:16:5 处理到第6100个文件
2018-05-06 22:16:13 处理到第6150个文件
2018-05-06 22:16:13 处理到第6200个文件
2018-05-06 22:16:14 处理到第6250个文件
2018-05-06 22:16:15 处理到第6300个文件
2018-05-06 22:16:16 处理到第6350个文件
2018-05-06 22:16:17 处理到第6400个文件
2018-05-06 22:16:18 处理到第6450个文件
2018-05-06 22:16:19 处理到第6500个文件
2018-05-06 22:16:21 处理到第6550个文件
2018-05-06 22:16:22 处理到第6600个文件
2018-05-06 22:16:22 处理到第6650个文件
2018-05-06 22:16:23 处理到第6700个文件
2018-05-06 22:16:24 处理到第6750个文件
2018-05-06 22:16:25 处理到第6800个文件
2018-05-06 22:16:26 处理到第6850个文件
2018-05-06 22:16:27 处理到第6900个文件
2018-05-06 22:16:28 处理到第6950个文件
2018-05-06 22:16:36 处理到第7000个文件
2018-05-06 22:16:52 处理到第7050个文件
2018-05-06 22:16:54 saveTopicDetails函数请求时出现异常Error: ESOCKETTIMEDOUT
2018-05-06 22:16:54  url=http://www.55188.com/thread-8303338-705-1.html
2018-05-06 22:16:54  title= 粉色魔窟与你同在------第50期(将超前热点分享十即时实盘+宏观调控解盘进行到底)
2018-05-06 22:16:54  index=7034

2018-05-06 22:16:58 saveTopicDetails函数请求时出现异常Error: ETIMEDOUT
2018-05-06 22:16:58  url=http://www.55188.com/thread-8303338-715-1.html
2018-05-06 22:16:58  title= 粉色魔窟与你同在------第50期(将超前热点分享十即时实盘+宏观调控解盘进行到底)
2018-05-06 22:16:58  index=7044

2018-05-06 22:17:3 处理到第7100个文件
2018-05-06 22:17:10 处理到第7150个文件
2018-05-06 22:17:19 处理到第7200个文件
2018-05-06 22:17:29 处理到第7250个文件
2018-05-06 22:17:37 处理到第7300个文件
2018-05-06 22:17:45 处理到第7350个文件
2018-05-06 22:17:47 处理到第7400个文件
2018-05-06 22:17:50 处理到第7450个文件
2018-05-06 22:17:58 处理到第7500个文件
2018-05-06 22:18:1 处理到第7550个文件
2018-05-06 22:18:7 处理到第7600个文件
2018-05-06 22:18:8 处理到第7650个文件
2018-05-06 22:18:9 处理到第7700个文件
2018-05-06 22:18:9 处理到第7750个文件
2018-05-06 22:18:10 处理到第7800个文件
2018-05-06 22:18:11 处理到第7850个文件
2018-05-06 22:18:12 处理到第7900个文件
2018-05-06 22:18:13 处理到第7950个文件
2018-05-06 22:18:18 处理到第8000个文件
2018-05-06 22:18:28 处理到第8050个文件
2018-05-06 22:18:45 处理到第8100个文件
2018-05-06 22:18:53 处理到第8150个文件
2018-05-06 22:19:3 处理到第8200个文件
2018-05-06 22:19:12 处理到第8250个文件
2018-05-06 22:19:25 处理到第8300个文件
2018-05-06 22:19:34 处理到第8350个文件
2018-05-06 22:19:43 处理到第8400个文件
2018-05-06 22:19:53 处理到第8450个文件
2018-05-06 22:20:5 处理到第8500个文件
2018-05-06 22:20:14 处理到第8550个文件
2018-05-06 22:20:26 处理到第8600个文件
2018-05-06 22:20:34 处理到第8650个文件
2018-05-06 22:20:43 处理到第8700个文件
2018-05-06 22:20:55 处理到第8750个文件
2018-05-06 22:21:10 处理到第8800个文件
2018-05-06 22:21:20 处理到第8850个文件
2018-05-06 22:21:28 处理到第8900个文件
2018-05-06 22:21:38 处理到第8950个文件
2018-05-06 22:21:50 处理到第9000个文件
2018-05-06 22:22:3 处理到第9050个文件
2018-05-06 22:22:15 处理到第9100个文件
2018-05-06 22:22:16 处理到第9150个文件
2018-05-06 22:22:19 处理到第9200个文件
2018-05-06 22:22:25 处理到第9250个文件
2018-05-06 22:22:27 处理到第9300个文件
2018-05-06 22:22:28 处理到第9350个文件
2018-05-06 22:22:32 处理到第9400个文件
2018-05-06 22:22:41 处理到第9450个文件
2018-05-06 22:22:49 处理到第9500个文件
2018-05-06 22:23:0 处理到第9550个文件
2018-05-06 22:23:7 处理到第9600个文件
2018-05-06 22:23:8 处理到第9650个文件
2018-05-06 22:23:10 处理到第9700个文件
2018-05-06 22:23:27 处理到第9750个文件

C:\Users\horn1\Desktop\node.js\66-理想论坛爬虫1.09 - insertdb.js>node lixiang.js
 选择【再续前缘】输入0,选择【新的开始】输入页码,以逗号分隔: 0
【再续前缘】
上次未完成列表中有27个文件
上次下载失败列表中有16个文件
拟生成文件43个

C:\Users\horn1\Desktop\node.js\66-理想论坛爬虫1.09 - insertdb.js>node checkfiles.js
编号为2675的文件缺失
编号为2676的文件缺失
编号为2677的文件缺失
编号为2678的文件缺失
编号为2680的文件缺失
编号为2681的文件缺失
编号为2682的文件缺失
编号为2683的文件缺失
编号为2684的文件缺失
编号为2685的文件缺失
编号为2686的文件缺失
编号为2687的文件缺失
编号为2688的文件缺失
编号为2689的文件缺失
编号为2690的文件缺失
编号为2691的文件缺失
编号为2692的文件缺失
编号为2693的文件缺失
编号为2694的文件缺失
编号为2695的文件缺失
编号为2696的文件缺失
编号为2697的文件缺失
编号为2698的文件缺失
编号为2699的文件缺失
编号为2700的文件缺失
编号为2701的文件缺失
编号为2702的文件缺失
编号为2703的文件缺失
编号为2704的文件缺失
编号为2706的文件缺失
编号为2708的文件缺失
编号为2709的文件缺失
编号为2710的文件缺失
编号为2711的文件缺失
编号为2712的文件缺失
编号为2713的文件缺失
编号为2714的文件缺失
编号为2715的文件缺失
编号为2716的文件缺失
编号为2717的文件缺失
编号为2718的文件缺失
编号为2719的文件缺失
编号为2720的文件缺失
编号为2721的文件缺失
编号为2722的文件缺失
编号为2723的文件缺失
编号为2724的文件缺失
编号为2725的文件缺失
编号为2726的文件缺失
编号为2727的文件缺失
编号为2728的文件缺失
编号为2731的文件缺失
编号为2732的文件缺失
编号为2733的文件缺失
编号为2734的文件缺失
编号为2735的文件缺失
编号为2736的文件缺失
编号为2737的文件缺失
编号为2738的文件缺失
编号为2739的文件缺失
编号为2740的文件缺失
编号为2741的文件缺失
编号为2742的文件缺失
编号为2743的文件缺失
编号为2744的文件缺失
编号为2745的文件缺失
编号为2746的文件缺失
编号为2747的文件缺失
编号为2748的文件缺失
编号为2749的文件缺失
编号为2750的文件缺失
编号为2752的文件缺失
编号为2753的文件缺失
编号为2754的文件缺失
编号为2755的文件缺失
编号为2756的文件缺失
编号为2757的文件缺失
编号为2758的文件缺失
编号为2759的文件缺失
编号为2760的文件缺失
编号为2761的文件缺失
编号为2762的文件缺失
编号为2763的文件缺失
编号为2764的文件缺失
编号为2765的文件缺失
编号为2766的文件缺失
编号为2767的文件缺失
编号为2768的文件缺失
编号为2769的文件缺失
编号为2770的文件缺失
编号为2771的文件缺失
编号为2772的文件缺失
编号为2773的文件缺失
编号为2774的文件缺失
编号为2775的文件缺失
编号为2776的文件缺失
编号为2777的文件缺失
编号为2778的文件缺失
编号为2779的文件缺失
编号为2780的文件缺失
编号为2781的文件缺失
编号为2782的文件缺失
编号为2784的文件缺失
编号为2786的文件缺失
编号为2787的文件缺失
编号为2788的文件缺失
编号为2789的文件缺失
编号为2790的文件缺失
编号为2791的文件缺失
编号为2792的文件缺失
编号为2793的文件缺失
编号为2794的文件缺失
编号为2795的文件缺失
编号为2796的文件缺失
编号为2797的文件缺失
编号为2798的文件缺失
编号为2799的文件缺失
编号为2800的文件缺失
编号为2801的文件缺失
编号为5182的文件缺失
编号为5185的文件缺失
编号为5186的文件缺失
编号为5187的文件缺失
编号为5188的文件缺失
编号为5189的文件缺失
编号为5190的文件缺失
编号为5192的文件缺失
编号为5193的文件缺失
编号为5194的文件缺失
编号为5195的文件缺失
编号为5196的文件缺失
编号为5197的文件缺失
编号为5198的文件缺失
编号为5199的文件缺失
编号为5200的文件缺失
编号为5201的文件缺失
编号为5202的文件缺失
编号为5205的文件缺失
编号为5206的文件缺失
编号为5207的文件缺失
编号为5208的文件缺失
编号为5209的文件缺失
编号为5210的文件缺失
编号为5211的文件缺失
编号为5212的文件缺失
编号为5213的文件缺失
编号为5214的文件缺失
编号为5215的文件缺失
编号为5216的文件缺失
编号为5217的文件缺失
编号为5218的文件缺失
编号为5219的文件缺失
编号为5220的文件缺失
编号为5221的文件缺失
编号为5222的文件缺失
编号为5223的文件缺失
编号为5224的文件缺失
编号为5225的文件缺失
编号为5226的文件缺失
编号为5227的文件缺失
编号为5228的文件缺失
编号为5229的文件缺失
编号为5230的文件缺失
编号为5231的文件缺失
编号为5232的文件缺失
编号为5233的文件缺失
编号为5234的文件缺失
编号为5235的文件缺失
编号为5236的文件缺失
编号为5237的文件缺失
编号为5238的文件缺失
编号为5239的文件缺失
编号为5240的文件缺失
编号为5241的文件缺失
编号为5244的文件缺失
编号为5245的文件缺失
编号为5246的文件缺失
编号为5247的文件缺失
编号为5248的文件缺失
编号为5249的文件缺失
编号为5250的文件缺失
编号为5251的文件缺失
编号为5252的文件缺失
编号为5253的文件缺失
编号为5254的文件缺失
编号为5255的文件缺失
编号为5256的文件缺失
编号为5257的文件缺失
编号为5258的文件缺失
编号为5259的文件缺失
编号为5260的文件缺失
编号为5261的文件缺失
编号为5262的文件缺失
编号为5263的文件缺失
编号为5264的文件缺失
编号为5265的文件缺失
编号为5266的文件缺失
编号为5267的文件缺失
编号为5268的文件缺失
编号为5269的文件缺失
编号为5270的文件缺失
编号为5271的文件缺失
编号为5272的文件缺失
编号为5273的文件缺失
编号为5275的文件缺失
编号为5277的文件缺失
编号为5278的文件缺失
编号为5279的文件缺失
编号为5280的文件缺失
编号为5281的文件缺失
编号为5282的文件缺失
编号为5283的文件缺失
编号为5284的文件缺失
编号为5285的文件缺失
编号为5286的文件缺失
编号为5287的文件缺失
编号为5288的文件缺失
编号为5289的文件缺失
编号为5290的文件缺失
编号为5291的文件缺失
编号为5292的文件缺失
编号为5293的文件缺失
编号为5294的文件缺失
编号为5295的文件缺失
编号为5296的文件缺失
编号为5297的文件缺失
编号为5298的文件缺失
编号为5299的文件缺失
编号为5300的文件缺失
编号为5301的文件缺失
编号为5302的文件缺失
编号为5303的文件缺失
编号为5304的文件缺失
编号为5305的文件缺失
编号为5306的文件缺失
编号为5307的文件缺失
编号为5308的文件缺失
编号为5309的文件缺失
编号为5310的文件缺失
编号为5311的文件缺失
编号为5312的文件缺失
编号为5313的文件缺失
编号为5314的文件缺失
编号为5315的文件缺失
编号为5316的文件缺失
编号为5318的文件缺失
编号为5319的文件缺失
编号为5320的文件缺失
编号为5321的文件缺失
编号为5322的文件缺失
编号为5323的文件缺失
编号为5324的文件缺失
编号为5325的文件缺失
编号为5326的文件缺失
编号为5327的文件缺失
编号为5328的文件缺失
编号为5329的文件缺失
编号为5330的文件缺失
编号为5331的文件缺失
编号为5332的文件缺失
编号为5333的文件缺失
编号为5334的文件缺失
编号为5335的文件缺失
编号为5336的文件缺失
编号为5337的文件缺失
编号为5338的文件缺失
编号为5339的文件缺失
编号为5340的文件缺失
编号为5341的文件缺失
编号为5342的文件缺失
编号为5343的文件缺失
编号为5344的文件缺失
编号为5345的文件缺失
编号为5346的文件缺失
编号为5347的文件缺失
编号为5348的文件缺失
编号为5349的文件缺失
编号为5350的文件缺失
编号为5351的文件缺失
编号为5352的文件缺失
编号为5353的文件缺失
编号为5354的文件缺失
编号为5355的文件缺失
编号为5356的文件缺失
编号为5357的文件缺失
编号为5358的文件缺失
编号为5359的文件缺失
编号为5360的文件缺失
编号为5361的文件缺失
编号为5362的文件缺失
编号为5363的文件缺失
编号为5364的文件缺失
编号为5365的文件缺失
编号为5366的文件缺失
编号为5367的文件缺失
编号为5370的文件缺失
编号为5371的文件缺失
编号为5372的文件缺失
编号为5373的文件缺失
编号为5374的文件缺失
编号为5375的文件缺失
编号为5376的文件缺失
编号为5377的文件缺失
编号为5378的文件缺失
编号为5379的文件缺失
编号为5380的文件缺失
编号为5381的文件缺失
编号为5382的文件缺失
编号为5383的文件缺失
编号为5384的文件缺失
编号为5385的文件缺失
编号为5386的文件缺失
编号为5387的文件缺失
编号为5388的文件缺失
编号为5389的文件缺失
编号为5390的文件缺失
编号为5391的文件缺失
编号为5392的文件缺失
编号为5393的文件缺失
编号为5394的文件缺失
编号为5395的文件缺失
编号为5396的文件缺失
编号为5397的文件缺失
编号为5398的文件缺失
编号为5399的文件缺失
编号为5400的文件缺失
编号为5401的文件缺失
编号为5402的文件缺失
编号为5403的文件缺失
编号为5404的文件缺失
编号为5405的文件缺失
编号为5406的文件缺失
编号为5409的文件缺失
编号为5410的文件缺失
编号为5411的文件缺失
编号为5412的文件缺失
编号为5413的文件缺失
编号为5414的文件缺失
编号为5415的文件缺失
编号为5416的文件缺失
编号为5417的文件缺失
编号为5418的文件缺失
编号为5419的文件缺失
编号为5420的文件缺失
编号为5421的文件缺失
编号为5422的文件缺失
编号为5423的文件缺失
编号为5424的文件缺失
编号为5425的文件缺失
编号为5426的文件缺失
编号为5427的文件缺失
编号为5428的文件缺失
编号为5429的文件缺失
编号为5430的文件缺失
编号为5431的文件缺失
编号为5432的文件缺失
编号为5433的文件缺失
编号为5434的文件缺失
编号为5435的文件缺失
编号为5436的文件缺失
编号为5437的文件缺失
编号为5438的文件缺失
编号为5439的文件缺失
编号为5440的文件缺失
编号为5441的文件缺失
编号为5442的文件缺失
编号为5443的文件缺失
编号为5444的文件缺失
编号为5445的文件缺失
编号为5446的文件缺失
编号为5447的文件缺失
编号为5448的文件缺失
编号为5450的文件缺失
编号为5451的文件缺失
编号为5452的文件缺失
编号为5453的文件缺失
编号为5454的文件缺失
编号为5455的文件缺失
编号为5456的文件缺失
编号为5457的文件缺失
编号为5458的文件缺失
编号为5459的文件缺失
编号为5460的文件缺失
编号为5461的文件缺失
编号为5462的文件缺失
编号为5463的文件缺失
编号为5464的文件缺失
编号为5465的文件缺失
编号为5466的文件缺失
编号为5467的文件缺失
编号为5468的文件缺失
编号为5469的文件缺失
编号为5470的文件缺失
编号为5471的文件缺失
编号为5472的文件缺失
编号为5473的文件缺失
编号为5474的文件缺失
编号为5475的文件缺失
编号为5476的文件缺失
编号为5477的文件缺失
编号为5478的文件缺失
编号为5479的文件缺失
编号为5480的文件缺失
编号为5481的文件缺失
编号为5482的文件缺失
编号为5483的文件缺失
编号为5484的文件缺失
编号为5485的文件缺失
编号为5486的文件缺失
编号为5487的文件缺失
编号为5488的文件缺失
编号为5489的文件缺失
编号为5490的文件缺失
编号为5491的文件缺失
编号为5492的文件缺失
编号为5493的文件缺失
编号为5494的文件缺失
编号为5495的文件缺失
编号为5496的文件缺失
编号为5498的文件缺失
编号为5500的文件缺失
编号为5501的文件缺失
编号为5502的文件缺失
编号为5503的文件缺失
编号为5504的文件缺失
编号为5505的文件缺失
编号为5506的文件缺失
编号为5507的文件缺失
编号为5508的文件缺失
编号为5509的文件缺失
编号为5510的文件缺失
编号为5511的文件缺失
编号为5512的文件缺失
编号为5513的文件缺失
编号为5514的文件缺失
编号为5515的文件缺失
编号为5516的文件缺失
编号为5517的文件缺失
编号为5518的文件缺失
编号为5519的文件缺失
编号为5520的文件缺失
编号为5521的文件缺失
编号为5522的文件缺失
编号为5523的文件缺失
编号为5524的文件缺失
编号为5525的文件缺失
编号为5526的文件缺失
编号为5527的文件缺失
编号为5528的文件缺失
编号为5529的文件缺失
编号为5530的文件缺失
编号为5531的文件缺失
编号为5532的文件缺失
编号为5533的文件缺失
编号为5534的文件缺失
编号为5535的文件缺失
编号为5536的文件缺失
编号为5537的文件缺失
编号为5538的文件缺失
编号为5539的文件缺失
编号为5540的文件缺失
编号为5541的文件缺失
编号为5542的文件缺失
编号为5543的文件缺失
编号为5545的文件缺失
编号为5546的文件缺失
编号为5547的文件缺失
编号为5548的文件缺失
编号为5551的文件缺失
编号为5554的文件缺失
编号为5902的文件缺失
编号为5903的文件缺失
编号为5907的文件缺失
编号为5908的文件缺失
编号为5909的文件缺失
编号为5910的文件缺失
编号为5911的文件缺失
编号为5912的文件缺失
编号为5913的文件缺失
编号为5914的文件缺失
编号为5915的文件缺失
编号为5916的文件缺失
编号为5917的文件缺失
编号为5918的文件缺失
编号为5919的文件缺失
编号为5921的文件缺失
编号为5922的文件缺失
编号为5923的文件缺失
编号为5924的文件缺失
编号为5925的文件缺失
编号为5926的文件缺失
编号为5927的文件缺失
编号为5929的文件缺失
编号为5930的文件缺失
编号为5931的文件缺失
编号为5932的文件缺失
编号为5933的文件缺失
编号为5934的文件缺失
编号为5935的文件缺失
编号为5936的文件缺失
编号为5937的文件缺失
编号为5938的文件缺失
编号为5939的文件缺失
编号为5940的文件缺失
编号为5941的文件缺失
编号为5942的文件缺失
编号为5943的文件缺失
编号为5944的文件缺失
编号为5945的文件缺失
编号为5946的文件缺失
编号为5947的文件缺失
编号为5948的文件缺失
编号为5949的文件缺失
编号为5950的文件缺失
编号为5951的文件缺失
编号为5952的文件缺失
编号为5953的文件缺失
编号为5954的文件缺失
编号为5955的文件缺失
编号为5956的文件缺失
编号为5957的文件缺失
编号为5958的文件缺失
编号为5961的文件缺失
编号为5962的文件缺失
编号为5963的文件缺失
编号为5964的文件缺失
编号为5965的文件缺失
编号为5966的文件缺失
编号为5967的文件缺失
编号为5968的文件缺失
编号为5969的文件缺失
编号为5970的文件缺失
编号为5971的文件缺失
编号为5972的文件缺失
编号为5973的文件缺失
编号为5974的文件缺失
编号为5975的文件缺失
编号为5976的文件缺失
编号为5977的文件缺失
编号为5978的文件缺失
编号为5979的文件缺失
编号为5980的文件缺失
编号为5981的文件缺失
编号为5982的文件缺失
编号为5983的文件缺失
编号为5984的文件缺失
编号为5985的文件缺失
编号为5986的文件缺失
编号为5987的文件缺失
编号为5988的文件缺失
编号为5989的文件缺失
编号为5990的文件缺失
编号为5991的文件缺失
编号为5992的文件缺失
编号为5993的文件缺失
编号为5994的文件缺失
编号为5995的文件缺失
编号为5996的文件缺失
编号为5997的文件缺失
编号为5998的文件缺失
编号为5999的文件缺失
编号为6000的文件缺失
编号为6001的文件缺失
编号为6002的文件缺失
编号为6003的文件缺失
编号为6004的文件缺失
编号为6005的文件缺失
编号为6006的文件缺失
编号为6007的文件缺失
编号为6009的文件缺失
编号为6010的文件缺失
编号为6012的文件缺失
编号为6013的文件缺失
编号为6014的文件缺失
编号为6015的文件缺失
编号为6016的文件缺失
编号为6017的文件缺失
编号为6018的文件缺失
编号为6019的文件缺失
编号为6020的文件缺失
编号为6021的文件缺失
编号为6022的文件缺失
编号为6023的文件缺失
编号为6024的文件缺失
编号为6025的文件缺失
编号为6026的文件缺失
编号为6027的文件缺失
编号为6028的文件缺失
编号为6029的文件缺失
编号为6030的文件缺失
编号为6031的文件缺失
编号为6032的文件缺失
编号为6033的文件缺失
编号为6034的文件缺失
编号为6035的文件缺失
编号为6036的文件缺失
编号为6037的文件缺失
编号为6038的文件缺失
编号为6039的文件缺失
编号为6040的文件缺失
编号为6041的文件缺失
编号为6042的文件缺失
编号为6043的文件缺失
编号为6044的文件缺失
编号为6045的文件缺失
编号为6046的文件缺失
编号为6047的文件缺失
编号为6048的文件缺失
编号为6049的文件缺失
编号为6050的文件缺失
编号为6051的文件缺失
编号为6052的文件缺失
编号为6053的文件缺失
编号为6054的文件缺失
编号为6056的文件缺失
编号为6057的文件缺失
编号为6058的文件缺失
编号为6059的文件缺失
编号为6060的文件缺失
编号为6061的文件缺失
编号为6062的文件缺失
编号为6063的文件缺失
编号为6064的文件缺失
编号为6065的文件缺失
编号为6066的文件缺失
编号为6067的文件缺失
编号为6068的文件缺失
编号为6069的文件缺失
编号为6070的文件缺失
编号为6071的文件缺失
编号为6072的文件缺失
编号为6073的文件缺失
编号为6074的文件缺失
编号为6075的文件缺失
编号为6076的文件缺失
编号为6077的文件缺失
编号为6078的文件缺失
编号为6079的文件缺失
编号为6080的文件缺失
编号为6081的文件缺失
编号为6082的文件缺失
编号为6083的文件缺失
编号为6084的文件缺失
编号为6085的文件缺失
编号为6086的文件缺失
编号为6087的文件缺失
编号为6088的文件缺失
编号为6089的文件缺失
编号为6090的文件缺失
编号为6091的文件缺失
编号为6092的文件缺失
编号为6093的文件缺失
编号为6094的文件缺失
编号为6095的文件缺失
编号为6096的文件缺失
编号为6097的文件缺失
编号为6098的文件缺失
编号为6099的文件缺失
编号为6100的文件缺失
编号为6101的文件缺失
编号为6102的文件缺失
编号为6103的文件缺失
编号为6104的文件缺失
编号为6105的文件缺失
编号为6106的文件缺失
编号为6130的文件缺失
编号为6131的文件缺失
编号为6132的文件缺失
编号为6133的文件缺失
编号为6135的文件缺失
编号为6136的文件缺失
编号为6137的文件缺失
编号为6138的文件缺失
编号为6139的文件缺失
编号为6140的文件缺失
编号为6141的文件缺失
编号为6142的文件缺失
编号为6143的文件缺失
编号为6144的文件缺失
编号为6146的文件缺失
编号为6147的文件缺失
编号为6148的文件缺失
编号为6149的文件缺失
编号为6151的文件缺失
编号为6152的文件缺失
编号为6153的文件缺失
编号为6154的文件缺失
编号为6155的文件缺失
编号为6156的文件缺失
编号为6157的文件缺失
编号为6158的文件缺失
编号为6159的文件缺失
编号为6160的文件缺失
编号为6161的文件缺失
编号为6162的文件缺失
编号为6163的文件缺失
编号为6164的文件缺失
编号为6165的文件缺失
编号为6166的文件缺失
编号为6167的文件缺失
编号为6168的文件缺失
编号为6169的文件缺失
编号为6170的文件缺失
编号为6171的文件缺失
编号为6172的文件缺失
编号为6173的文件缺失
编号为6174的文件缺失
编号为6175的文件缺失
编号为6176的文件缺失
编号为6177的文件缺失
编号为6178的文件缺失
编号为6179的文件缺失
编号为6180的文件缺失
编号为6181的文件缺失
编号为6182的文件缺失
编号为6183的文件缺失
编号为6184的文件缺失
编号为6185的文件缺失
编号为6186的文件缺失
编号为6187的文件缺失
编号为6188的文件缺失
编号为6189的文件缺失
编号为6190的文件缺失
编号为6191的文件缺失
编号为6194的文件缺失
编号为6195的文件缺失
编号为6196的文件缺失
编号为6197的文件缺失
编号为6198的文件缺失
编号为6199的文件缺失
编号为6200的文件缺失
编号为6201的文件缺失
编号为6202的文件缺失
编号为6203的文件缺失
编号为6204的文件缺失
编号为6205的文件缺失
编号为6206的文件缺失
编号为6207的文件缺失
编号为6208的文件缺失
编号为6209的文件缺失
编号为6210的文件缺失
编号为6211的文件缺失
编号为6212的文件缺失
编号为6213的文件缺失
编号为6214的文件缺失
编号为6215的文件缺失
编号为6216的文件缺失
编号为6217的文件缺失
编号为6218的文件缺失
编号为6219的文件缺失
编号为6220的文件缺失
编号为6221的文件缺失
编号为6222的文件缺失
编号为6223的文件缺失
编号为6224的文件缺失
编号为6225的文件缺失
编号为6226的文件缺失
编号为6227的文件缺失
编号为6228的文件缺失
编号为6229的文件缺失
编号为6230的文件缺失
编号为6231的文件缺失
编号为6232的文件缺失
编号为6233的文件缺失
编号为6234的文件缺失
编号为6235的文件缺失
编号为6236的文件缺失
编号为6237的文件缺失
编号为6238的文件缺失
编号为6239的文件缺失
编号为6240的文件缺失
编号为6241的文件缺失
编号为6242的文件缺失
编号为6244的文件缺失
编号为6245的文件缺失
编号为6246的文件缺失
编号为6247的文件缺失
编号为6248的文件缺失
编号为6249的文件缺失
编号为6250的文件缺失
编号为6251的文件缺失
编号为6252的文件缺失
编号为6253的文件缺失
编号为6254的文件缺失
编号为6255的文件缺失
编号为6256的文件缺失
编号为6257的文件缺失
编号为6258的文件缺失
编号为6259的文件缺失
编号为6260的文件缺失
编号为6261的文件缺失
编号为6262的文件缺失
编号为6263的文件缺失
编号为6264的文件缺失
编号为6265的文件缺失
编号为6266的文件缺失
编号为6267的文件缺失
编号为6268的文件缺失
编号为6269的文件缺失
编号为6270的文件缺失
编号为6271的文件缺失
编号为6272的文件缺失
编号为6273的文件缺失
编号为6274的文件缺失
编号为6275的文件缺失
编号为6276的文件缺失
编号为6277的文件缺失
编号为6278的文件缺失
编号为6279的文件缺失
编号为6280的文件缺失
编号为6281的文件缺失
编号为6282的文件缺失
编号为6283的文件缺失
编号为6284的文件缺失
编号为6285的文件缺失
编号为6286的文件缺失
编号为6287的文件缺失
编号为6288的文件缺失
编号为6289的文件缺失
编号为6290的文件缺失
编号为6291的文件缺失
编号为6292的文件缺失
编号为6293的文件缺失
编号为6294的文件缺失
编号为6295的文件缺失
编号为6296的文件缺失
编号为6297的文件缺失
编号为6298的文件缺失
编号为6299的文件缺失
编号为6300的文件缺失
编号为6301的文件缺失
编号为6302的文件缺失
编号为6303的文件缺失
编号为6304的文件缺失
编号为6305的文件缺失
编号为6306的文件缺失
编号为6307的文件缺失
编号为6308的文件缺失
编号为6309的文件缺失
编号为6310的文件缺失
编号为6311的文件缺失
编号为6312的文件缺失
编号为6313的文件缺失
编号为6314的文件缺失
编号为6315的文件缺失
编号为6318的文件缺失
编号为6319的文件缺失
编号为6320的文件缺失
编号为6321的文件缺失
编号为6322的文件缺失
编号为6323的文件缺失
编号为6324的文件缺失
编号为6325的文件缺失
编号为6326的文件缺失
编号为6327的文件缺失
编号为6328的文件缺失
编号为6329的文件缺失
编号为6330的文件缺失
编号为6331的文件缺失
编号为6332的文件缺失
编号为6333的文件缺失
编号为6334的文件缺失
编号为6335的文件缺失
编号为6336的文件缺失
编号为6337的文件缺失
编号为6338的文件缺失
编号为6339的文件缺失
编号为6340的文件缺失
编号为6341的文件缺失
编号为6342的文件缺失
编号为6343的文件缺失
编号为6344的文件缺失
编号为6345的文件缺失
编号为6346的文件缺失
编号为6347的文件缺失
编号为6348的文件缺失
编号为6349的文件缺失
编号为6350的文件缺失
编号为6351的文件缺失
编号为6352的文件缺失
编号为6353的文件缺失
编号为6355的文件缺失
编号为6357的文件缺失
编号为6358的文件缺失
编号为6359的文件缺失
编号为6360的文件缺失
编号为6361的文件缺失
编号为6362的文件缺失
编号为6363的文件缺失
编号为6364的文件缺失
编号为6365的文件缺失
编号为6366的文件缺失
编号为6367的文件缺失
编号为6368的文件缺失
编号为6369的文件缺失
编号为6370的文件缺失
编号为6371的文件缺失
编号为6372的文件缺失
编号为6373的文件缺失
编号为6374的文件缺失
编号为6375的文件缺失
编号为6376的文件缺失
编号为6377的文件缺失
编号为6378的文件缺失
编号为6379的文件缺失
编号为6380的文件缺失
编号为6381的文件缺失
编号为6382的文件缺失
编号为6383的文件缺失
编号为6384的文件缺失
编号为6385的文件缺失
编号为6386的文件缺失
编号为6387的文件缺失
编号为6388的文件缺失
编号为6389的文件缺失
编号为6390的文件缺失
编号为6391的文件缺失
编号为6392的文件缺失
编号为6393的文件缺失
编号为6394的文件缺失
编号为6395的文件缺失
编号为6396的文件缺失
编号为6397的文件缺失
编号为6398的文件缺失
编号为6399的文件缺失
编号为6400的文件缺失
编号为6401的文件缺失
编号为6402的文件缺失
编号为6404的文件缺失
编号为6405的文件缺失
编号为6406的文件缺失
编号为6407的文件缺失
编号为6408的文件缺失
编号为6409的文件缺失
编号为6410的文件缺失
编号为6411的文件缺失
编号为6412的文件缺失
编号为6413的文件缺失
编号为6414的文件缺失
编号为6415的文件缺失
编号为6416的文件缺失
编号为6417的文件缺失
编号为6418的文件缺失
编号为6419的文件缺失
编号为6420的文件缺失
编号为6421的文件缺失
编号为6422的文件缺失
编号为6423的文件缺失
编号为6424的文件缺失
编号为6425的文件缺失
编号为6426的文件缺失
编号为6427的文件缺失
编号为6428的文件缺失
编号为6429的文件缺失
编号为6430的文件缺失
编号为6431的文件缺失
编号为6432的文件缺失
编号为6433的文件缺失
编号为6434的文件缺失
编号为6435的文件缺失
编号为6436的文件缺失
编号为6437的文件缺失
编号为6438的文件缺失
编号为6439的文件缺失
编号为6440的文件缺失
编号为6441的文件缺失
编号为6442的文件缺失
编号为6443的文件缺失
编号为6444的文件缺失
编号为6445的文件缺失
编号为6446的文件缺失
编号为6447的文件缺失
编号为6448的文件缺失
编号为6449的文件缺失
编号为6450的文件缺失
编号为6451的文件缺失
编号为6452的文件缺失
编号为6453的文件缺失
编号为6454的文件缺失
编号为6455的文件缺失
编号为6456的文件缺失
编号为6457的文件缺失
编号为6458的文件缺失
编号为6459的文件缺失
编号为6460的文件缺失
编号为6461的文件缺失
编号为6462的文件缺失
编号为6463的文件缺失
编号为6465的文件缺失
编号为6467的文件缺失
编号为6468的文件缺失
编号为6469的文件缺失
编号为6470的文件缺失
编号为6471的文件缺失
编号为6472的文件缺失
编号为6473的文件缺失
编号为6474的文件缺失
编号为6475的文件缺失
编号为6476的文件缺失
编号为6477的文件缺失
编号为6478的文件缺失
编号为6479的文件缺失
编号为6480的文件缺失
编号为6481的文件缺失
编号为6482的文件缺失
编号为6483的文件缺失
编号为6484的文件缺失
编号为6485的文件缺失
编号为6486的文件缺失
编号为6487的文件缺失
编号为6488的文件缺失
编号为6489的文件缺失
编号为6490的文件缺失
编号为6491的文件缺失
编号为6492的文件缺失
编号为6493的文件缺失
编号为6494的文件缺失
编号为6495的文件缺失
编号为6496的文件缺失
编号为6497的文件缺失
编号为6498的文件缺失
编号为6499的文件缺失
编号为6500的文件缺失
编号为6501的文件缺失
编号为6502的文件缺失
编号为6503的文件缺失
编号为6504的文件缺失
编号为6510的文件缺失
编号为6511的文件缺失
编号为6513的文件缺失
编号为6516的文件缺失
编号为6517的文件缺失
编号为6518的文件缺失
编号为6519的文件缺失
编号为6520的文件缺失
编号为6521的文件缺失
编号为6522的文件缺失
编号为6524的文件缺失
编号为6525的文件缺失
编号为6526的文件缺失
编号为6527的文件缺失
编号为6528的文件缺失
编号为6529的文件缺失
编号为6530的文件缺失
编号为6531的文件缺失
编号为6532的文件缺失
编号为6533的文件缺失
编号为6534的文件缺失
编号为6535的文件缺失
编号为6536的文件缺失
编号为6537的文件缺失
编号为6538的文件缺失
编号为6539的文件缺失
编号为6540的文件缺失
编号为6541的文件缺失
编号为6542的文件缺失
编号为6543的文件缺失
编号为6544的文件缺失
编号为6545的文件缺失
编号为6546的文件缺失
编号为6547的文件缺失
编号为6548的文件缺失
编号为6549的文件缺失
编号为6550的文件缺失
编号为6551的文件缺失
编号为6552的文件缺失
编号为6553的文件缺失
编号为6554的文件缺失
编号为6555的文件缺失
编号为6556的文件缺失
编号为6557的文件缺失
编号为6558的文件缺失
编号为6559的文件缺失
编号为6560的文件缺失
编号为6561的文件缺失
编号为6562的文件缺失
编号为6563的文件缺失
编号为6565的文件缺失
编号为6567的文件缺失
编号为6568的文件缺失
编号为6569的文件缺失
编号为6570的文件缺失
编号为6571的文件缺失
编号为6572的文件缺失
编号为6573的文件缺失
编号为6574的文件缺失
编号为6575的文件缺失
编号为6576的文件缺失
编号为6577的文件缺失
编号为6578的文件缺失
编号为6579的文件缺失
编号为6580的文件缺失
编号为6581的文件缺失
编号为6582的文件缺失
编号为6583的文件缺失
编号为6584的文件缺失
编号为6585的文件缺失
编号为6586的文件缺失
编号为6587的文件缺失
编号为6588的文件缺失
编号为6589的文件缺失
编号为6590的文件缺失
编号为6591的文件缺失
编号为6592的文件缺失
编号为6593的文件缺失
编号为6594的文件缺失
编号为6595的文件缺失
编号为6596的文件缺失
编号为6597的文件缺失
编号为6598的文件缺失
编号为6599的文件缺失
编号为6600的文件缺失
编号为6601的文件缺失
编号为6602的文件缺失
编号为6603的文件缺失
编号为6604的文件缺失
编号为6605的文件缺失
编号为6606的文件缺失
编号为6607的文件缺失
编号为6608的文件缺失
编号为6609的文件缺失
编号为6610的文件缺失
编号为6611的文件缺失
编号为6612的文件缺失
编号为6615的文件缺失
编号为6616的文件缺失
编号为6617的文件缺失
编号为6618的文件缺失
编号为6619的文件缺失
编号为6620的文件缺失
编号为6621的文件缺失
编号为6622的文件缺失
编号为6623的文件缺失
编号为6624的文件缺失
编号为6625的文件缺失
编号为6626的文件缺失
编号为6627的文件缺失
编号为6628的文件缺失
编号为6629的文件缺失
编号为6630的文件缺失
编号为6631的文件缺失
编号为6632的文件缺失
编号为6633的文件缺失
编号为6634的文件缺失
编号为6635的文件缺失
编号为6636的文件缺失
编号为6637的文件缺失
编号为6638的文件缺失
编号为6639的文件缺失
编号为6640的文件缺失
编号为6641的文件缺失
编号为6642的文件缺失
编号为6643的文件缺失
编号为6644的文件缺失
编号为6645的文件缺失
编号为6646的文件缺失
编号为6647的文件缺失
编号为6648的文件缺失
编号为6649的文件缺失
编号为6650的文件缺失
编号为6651的文件缺失
编号为6652的文件缺失
编号为6653的文件缺失
编号为6654的文件缺失
编号为6655的文件缺失
编号为6656的文件缺失
编号为6657的文件缺失
编号为6658的文件缺失
编号为6659的文件缺失
编号为6660的文件缺失
编号为6662的文件缺失
编号为6663的文件缺失
编号为6664的文件缺失
编号为6665的文件缺失
编号为6666的文件缺失
编号为6667的文件缺失
编号为6668的文件缺失
编号为6669的文件缺失
编号为6670的文件缺失
编号为6671的文件缺失
编号为6672的文件缺失
编号为6673的文件缺失
编号为6674的文件缺失
编号为6675的文件缺失
编号为6676的文件缺失
编号为6677的文件缺失
编号为6678的文件缺失
编号为6679的文件缺失
编号为6680的文件缺失
编号为6681的文件缺失
编号为6682的文件缺失
编号为6683的文件缺失
编号为6684的文件缺失
编号为6685的文件缺失
编号为6686的文件缺失
编号为6687的文件缺失
编号为6688的文件缺失
编号为6689的文件缺失
编号为6690的文件缺失
编号为6691的文件缺失
编号为6692的文件缺失
编号为6693的文件缺失
编号为6694的文件缺失
编号为6695的文件缺失
编号为6696的文件缺失
编号为6697的文件缺失
编号为6698的文件缺失
编号为6699的文件缺失
编号为6700的文件缺失
编号为6701的文件缺失
编号为6702的文件缺失
编号为6703的文件缺失
编号为6704的文件缺失
编号为6705的文件缺失
编号为6706的文件缺失
编号为6707的文件缺失
编号为6708的文件缺失
编号为6709的文件缺失
编号为6710的文件缺失
编号为6711的文件缺失
编号为6712的文件缺失
编号为6713的文件缺失
编号为6714的文件缺失
编号为6715的文件缺失
编号为6716的文件缺失
编号为6717的文件缺失
编号为6718的文件缺失
编号为6719的文件缺失
编号为6720的文件缺失
编号为6721的文件缺失
编号为6724的文件缺失
编号为6725的文件缺失
编号为6726的文件缺失
编号为6727的文件缺失
编号为6728的文件缺失
编号为6729的文件缺失
编号为6730的文件缺失
编号为6731的文件缺失
编号为6732的文件缺失
编号为6733的文件缺失
编号为6734的文件缺失
编号为6735的文件缺失
编号为6736的文件缺失
编号为6737的文件缺失
编号为6738的文件缺失
编号为6739的文件缺失
编号为6740的文件缺失
编号为6741的文件缺失
编号为6742的文件缺失
编号为6743的文件缺失
编号为6744的文件缺失
编号为6745的文件缺失
编号为6746的文件缺失
编号为6747的文件缺失
编号为6748的文件缺失
编号为6749的文件缺失
编号为6750的文件缺失
编号为6751的文件缺失
编号为6752的文件缺失
编号为6753的文件缺失
编号为6754的文件缺失
编号为6755的文件缺失
编号为6756的文件缺失
编号为6757的文件缺失
编号为6758的文件缺失
编号为6759的文件缺失
编号为6760的文件缺失
编号为6761的文件缺失
编号为6762的文件缺失
编号为6763的文件缺失
编号为6764的文件缺失
编号为6765的文件缺失
编号为6766的文件缺失
编号为6767的文件缺失
编号为6770的文件缺失
编号为6771的文件缺失
编号为6772的文件缺失
编号为6773的文件缺失
编号为6774的文件缺失
编号为6775的文件缺失
编号为6776的文件缺失
编号为6777的文件缺失
编号为6778的文件缺失
编号为6779的文件缺失
编号为6780的文件缺失
编号为6781的文件缺失
编号为6782的文件缺失
编号为6783的文件缺失
编号为6784的文件缺失
编号为6785的文件缺失
编号为6786的文件缺失
编号为6787的文件缺失
编号为6788的文件缺失
编号为6789的文件缺失
编号为6790的文件缺失
编号为6791的文件缺失
编号为6792的文件缺失
编号为6793的文件缺失
编号为6794的文件缺失
编号为6795的文件缺失
编号为6796的文件缺失
编号为6797的文件缺失
编号为6798的文件缺失
编号为6799的文件缺失
编号为6800的文件缺失
编号为6801的文件缺失
编号为6802的文件缺失
编号为6803的文件缺失
编号为6804的文件缺失
编号为6805的文件缺失
编号为6806的文件缺失
编号为6807的文件缺失
编号为6808的文件缺失
编号为6809的文件缺失
编号为6810的文件缺失
编号为6811的文件缺失
编号为6812的文件缺失
编号为6813的文件缺失
编号为6814的文件缺失
编号为6815的文件缺失
编号为6816的文件缺失
编号为6817的文件缺失
编号为6818的文件缺失
编号为6819的文件缺失
编号为6820的文件缺失
编号为6822的文件缺失
编号为6823的文件缺失
编号为6824的文件缺失
编号为6825的文件缺失
编号为6826的文件缺失
编号为6827的文件缺失
编号为6828的文件缺失
编号为6829的文件缺失
编号为6830的文件缺失
编号为6831的文件缺失
编号为6832的文件缺失
编号为6833的文件缺失
编号为6834的文件缺失
编号为6835的文件缺失
编号为6836的文件缺失
编号为6837的文件缺失
编号为6838的文件缺失
编号为6839的文件缺失
编号为6840的文件缺失
编号为6841的文件缺失
编号为6842的文件缺失
编号为6843的文件缺失
编号为6844的文件缺失
编号为6845的文件缺失
编号为6846的文件缺失
编号为6847的文件缺失
编号为6848的文件缺失
编号为6849的文件缺失
编号为6850的文件缺失
编号为6851的文件缺失
编号为6852的文件缺失
编号为6853的文件缺失
编号为6854的文件缺失
编号为6855的文件缺失
编号为6856的文件缺失
编号为6857的文件缺失
编号为6858的文件缺失
编号为6859的文件缺失
编号为6860的文件缺失
编号为6861的文件缺失
编号为6862的文件缺失
编号为6863的文件缺失
编号为6864的文件缺失
编号为6865的文件缺失
编号为6866的文件缺失
编号为6867的文件缺失
编号为6868的文件缺失
编号为6869的文件缺失
编号为6870的文件缺失
编号为6871的文件缺失
编号为6872的文件缺失
编号为6873的文件缺失
编号为6874的文件缺失
编号为6875的文件缺失
编号为6876的文件缺失
编号为6877的文件缺失
编号为6878的文件缺失
编号为6881的文件缺失
编号为6882的文件缺失
编号为6883的文件缺失
编号为6884的文件缺失
编号为6885的文件缺失
编号为6886的文件缺失
编号为6887的文件缺失
编号为6888的文件缺失
编号为6889的文件缺失
编号为6890的文件缺失
编号为6891的文件缺失
编号为6892的文件缺失
编号为6893的文件缺失
编号为6894的文件缺失
编号为6895的文件缺失
编号为6896的文件缺失
编号为6897的文件缺失
编号为6898的文件缺失
编号为6899的文件缺失
编号为6900的文件缺失
编号为6901的文件缺失
编号为6902的文件缺失
编号为6903的文件缺失
编号为6904的文件缺失
编号为6905的文件缺失
编号为6906的文件缺失
编号为6907的文件缺失
编号为6908的文件缺失
编号为6909的文件缺失
编号为6910的文件缺失
编号为6911的文件缺失
编号为6912的文件缺失
编号为6913的文件缺失
编号为6914的文件缺失
编号为6915的文件缺失
编号为6916的文件缺失
编号为6917的文件缺失
编号为6918的文件缺失
编号为6919的文件缺失
编号为6920的文件缺失
编号为6921的文件缺失
编号为6922的文件缺失
编号为6923的文件缺失
编号为6925的文件缺失
编号为6926的文件缺失
编号为6928的文件缺失
编号为6929的文件缺失
编号为6930的文件缺失
编号为6931的文件缺失
编号为6932的文件缺失
编号为6933的文件缺失
编号为6934的文件缺失
编号为6935的文件缺失
编号为6936的文件缺失
编号为6937的文件缺失
编号为6938的文件缺失
编号为6939的文件缺失
编号为6940的文件缺失
编号为6941的文件缺失
编号为6942的文件缺失
编号为6943的文件缺失
编号为6944的文件缺失
编号为6945的文件缺失
编号为6946的文件缺失
编号为6947的文件缺失
编号为6948的文件缺失
编号为6949的文件缺失
编号为6950的文件缺失
编号为6951的文件缺失
编号为6952的文件缺失
编号为6953的文件缺失
编号为6954的文件缺失
编号为6955的文件缺失
编号为6956的文件缺失
编号为6957的文件缺失
编号为6958的文件缺失
编号为6959的文件缺失
编号为6960的文件缺失
编号为6961的文件缺失
编号为6962的文件缺失
编号为6963的文件缺失
编号为6964的文件缺失
编号为6965的文件缺失
编号为6966的文件缺失
编号为6967的文件缺失
编号为6968的文件缺失
编号为6969的文件缺失
编号为7342的文件缺失
编号为7344的文件缺失
编号为7346的文件缺失
编号为7348的文件缺失
编号为7349的文件缺失
编号为7350的文件缺失
编号为7352的文件缺失
编号为7353的文件缺失
编号为7355的文件缺失
编号为7356的文件缺失
编号为7357的文件缺失
编号为7358的文件缺失
编号为7359的文件缺失
编号为7360的文件缺失
编号为7361的文件缺失
编号为7362的文件缺失
编号为7363的文件缺失
编号为7364的文件缺失
编号为7365的文件缺失
编号为7366的文件缺失
编号为7367的文件缺失
编号为7368的文件缺失
编号为7370的文件缺失
编号为7372的文件缺失
编号为7373的文件缺失
编号为7374的文件缺失
编号为7375的文件缺失
编号为7376的文件缺失
编号为7377的文件缺失
编号为7378的文件缺失
编号为7379的文件缺失
编号为7380的文件缺失
编号为7381的文件缺失
编号为7382的文件缺失
编号为7383的文件缺失
编号为7384的文件缺失
编号为7385的文件缺失
编号为7386的文件缺失
编号为7387的文件缺失
编号为7388的文件缺失
编号为7389的文件缺失
编号为7390的文件缺失
编号为7391的文件缺失
编号为7392的文件缺失
编号为7394的文件缺失
编号为7395的文件缺失
编号为7396的文件缺失
编号为7397的文件缺失
编号为7398的文件缺失
编号为7399的文件缺失
编号为7400的文件缺失
编号为7401的文件缺失
编号为7402的文件缺失
编号为7403的文件缺失
编号为7404的文件缺失
编号为7405的文件缺失
编号为7406的文件缺失
编号为7407的文件缺失
编号为7408的文件缺失
编号为7409的文件缺失
编号为7411的文件缺失
编号为7413的文件缺失
编号为7414的文件缺失
编号为7415的文件缺失
编号为7416的文件缺失
编号为7417的文件缺失
编号为7418的文件缺失
编号为7419的文件缺失
编号为7420的文件缺失
编号为7421的文件缺失
编号为7422的文件缺失
编号为7423的文件缺失
编号为7424的文件缺失
编号为7425的文件缺失
编号为7426的文件缺失
编号为7427的文件缺失
编号为7428的文件缺失
编号为7429的文件缺失
编号为7430的文件缺失
编号为7431的文件缺失
编号为7432的文件缺失
编号为7433的文件缺失
编号为7436的文件缺失
编号为7437的文件缺失
编号为7438的文件缺失
编号为7439的文件缺失
编号为7440的文件缺失
编号为7441的文件缺失
编号为7442的文件缺失
编号为7443的文件缺失
编号为7444的文件缺失
编号为7445的文件缺失
编号为7446的文件缺失
编号为7447的文件缺失
编号为7448的文件缺失
编号为7449的文件缺失
编号为7450的文件缺失
编号为7451的文件缺失
编号为7452的文件缺失
编号为7453的文件缺失
编号为7472的文件缺失
编号为7473的文件缺失
编号为7474的文件缺失
编号为7475的文件缺失
编号为7476的文件缺失
编号为7477的文件缺失
编号为7481的文件缺失
编号为7482的文件缺失
编号为7484的文件缺失
编号为7485的文件缺失
编号为7487的文件缺失
编号为7488的文件缺失
编号为7491的文件缺失
编号为7492的文件缺失
编号为7493的文件缺失
编号为7494的文件缺失
编号为7495的文件缺失
编号为7496的文件缺失
编号为7497的文件缺失
编号为7498的文件缺失
编号为7499的文件缺失
编号为7500的文件缺失
编号为7501的文件缺失
编号为7502的文件缺失
编号为7503的文件缺失
编号为7504的文件缺失
编号为7505的文件缺失
编号为7506的文件缺失
编号为7507的文件缺失
编号为7508的文件缺失
编号为7509的文件缺失
编号为7510的文件缺失
编号为7511的文件缺失
编号为7513的文件缺失
编号为7514的文件缺失
编号为7515的文件缺失
编号为7516的文件缺失
编号为7517的文件缺失
编号为7518的文件缺失
编号为7519的文件缺失
编号为7520的文件缺失
编号为7521的文件缺失
编号为7522的文件缺失
编号为7523的文件缺失
编号为7524的文件缺失
编号为7525的文件缺失
编号为7526的文件缺失
编号为7527的文件缺失
编号为7528的文件缺失
编号为7529的文件缺失
编号为7530的文件缺失
编号为7531的文件缺失
编号为7532的文件缺失
编号为7533的文件缺失
编号为7534的文件缺失
编号为7535的文件缺失
编号为7536的文件缺失
编号为7537的文件缺失
编号为7538的文件缺失
编号为7539的文件缺失
编号为7540的文件缺失
编号为7541的文件缺失
编号为7542的文件缺失
编号为7543的文件缺失
编号为7544的文件缺失
编号为7545的文件缺失
编号为7546的文件缺失
编号为7547的文件缺失
编号为7568的文件缺失
编号为7578的文件缺失
编号为7579的文件缺失
编号为7580的文件缺失
编号为7581的文件缺失
编号为7582的文件缺失
编号为7583的文件缺失
编号为7585的文件缺失
编号为7586的文件缺失
编号为7588的文件缺失
编号为7589的文件缺失
编号为7590的文件缺失
编号为7591的文件缺失
编号为7593的文件缺失
编号为7594的文件缺失
编号为7595的文件缺失
编号为7596的文件缺失
编号为7597的文件缺失
编号为7598的文件缺失
编号为7599的文件缺失
编号为7600的文件缺失
编号为7601的文件缺失
编号为7602的文件缺失
编号为7603的文件缺失
编号为7604的文件缺失
编号为7605的文件缺失
编号为7606的文件缺失
编号为7607的文件缺失
编号为7608的文件缺失
编号为7609的文件缺失
编号为7610的文件缺失
编号为7611的文件缺失
编号为7612的文件缺失
编号为7613的文件缺失
编号为7614的文件缺失
编号为7616的文件缺失
编号为7618的文件缺失
编号为7619的文件缺失
编号为7620的文件缺失
编号为7621的文件缺失
编号为7622的文件缺失
编号为7623的文件缺失
编号为7624的文件缺失
编号为7625的文件缺失
编号为7626的文件缺失
编号为7627的文件缺失
编号为7628的文件缺失
编号为7629的文件缺失
编号为7630的文件缺失
编号为7631的文件缺失
编号为7632的文件缺失
编号为7633的文件缺失
编号为7634的文件缺失
编号为7635的文件缺失
编号为7636的文件缺失
编号为7637的文件缺失
编号为7638的文件缺失
编号为7639的文件缺失
编号为7640的文件缺失
编号为7641的文件缺失
编号为7642的文件缺失
编号为7643的文件缺失
编号为7644的文件缺失
编号为7645的文件缺失
编号为7646的文件缺失
编号为7648的文件缺失
编号为7649的文件缺失
编号为7650的文件缺失
编号为7651的文件缺失
编号为7652的文件缺失
编号为7653的文件缺失
编号为7654的文件缺失
编号为7655的文件缺失
编号为7656的文件缺失
编号为7657的文件缺失
编号为7658的文件缺失
编号为7659的文件缺失
编号为7660的文件缺失
编号为7661的文件缺失
编号为7662的文件缺失
编号为7663的文件缺失
编号为7664的文件缺失
编号为7665的文件缺失
编号为7666的文件缺失
编号为7667的文件缺失
编号为7668的文件缺失
编号为7669的文件缺失
编号为7670的文件缺失
编号为7671的文件缺失
编号为7672的文件缺失
编号为7673的文件缺失
编号为7674的文件缺失
编号为7675的文件缺失
编号为7676的文件缺失
编号为7677的文件缺失
编号为7678的文件缺失
编号为7679的文件缺失
编号为7680的文件缺失
编号为7681的文件缺失
编号为7682的文件缺失
编号为7683的文件缺失
编号为7684的文件缺失
编号为7685的文件缺失
编号为7686的文件缺失
编号为7687的文件缺失
编号为7688的文件缺失
编号为7689的文件缺失
编号为7690的文件缺失
编号为7691的文件缺失
编号为7692的文件缺失
编号为7693的文件缺失
编号为7694的文件缺失
编号为7695的文件缺失
编号为7696的文件缺失
编号为7697的文件缺失
编号为7698的文件缺失
编号为7699的文件缺失
编号为7700的文件缺失
编号为7701的文件缺失
编号为7702的文件缺失
编号为7703的文件缺失
编号为7704的文件缺失
编号为7705的文件缺失
编号为7706的文件缺失
编号为7707的文件缺失
编号为7708的文件缺失
编号为7709的文件缺失
编号为7710的文件缺失
编号为7711的文件缺失
编号为7712的文件缺失
编号为7713的文件缺失
编号为7715的文件缺失
编号为7717的文件缺失
编号为7718的文件缺失
编号为7719的文件缺失
编号为7720的文件缺失
编号为7721的文件缺失
编号为7722的文件缺失
编号为7723的文件缺失
编号为7724的文件缺失
编号为7725的文件缺失
编号为7726的文件缺失
编号为7727的文件缺失
编号为7728的文件缺失
编号为7729的文件缺失
编号为7730的文件缺失
编号为7731的文件缺失
编号为7732的文件缺失
编号为7733的文件缺失
编号为7734的文件缺失
编号为7735的文件缺失
编号为7736的文件缺失
编号为7737的文件缺失
编号为7738的文件缺失
编号为7739的文件缺失
编号为7740的文件缺失
编号为7741的文件缺失
编号为7742的文件缺失
编号为7743的文件缺失
编号为7744的文件缺失
编号为7745的文件缺失
编号为7746的文件缺失
编号为7747的文件缺失
编号为7748的文件缺失
编号为7749的文件缺失
编号为7750的文件缺失
编号为7751的文件缺失
编号为7752的文件缺失
编号为7753的文件缺失
编号为7754的文件缺失
编号为7755的文件缺失
编号为7756的文件缺失
编号为7757的文件缺失
编号为7758的文件缺失
编号为7759的文件缺失
编号为7760的文件缺失
编号为7761的文件缺失
编号为7762的文件缺失
编号为7763的文件缺失
编号为7764的文件缺失
编号为7765的文件缺失
编号为7766的文件缺失
编号为7767的文件缺失
编号为7768的文件缺失
编号为7769的文件缺失
编号为7770的文件缺失
编号为7771的文件缺失
编号为7772的文件缺失
编号为7773的文件缺失
编号为7776的文件缺失
编号为7777的文件缺失
编号为7778的文件缺失
编号为7779的文件缺失
编号为7780的文件缺失
编号为7781的文件缺失
编号为7782的文件缺失
编号为7783的文件缺失
编号为7784的文件缺失
编号为7785的文件缺失
编号为7786的文件缺失
编号为7787的文件缺失
编号为7788的文件缺失
编号为7789的文件缺失
编号为7790的文件缺失
编号为7791的文件缺失
编号为7792的文件缺失
编号为7793的文件缺失
编号为7794的文件缺失
编号为7795的文件缺失
编号为7796的文件缺失
编号为7797的文件缺失
编号为7798的文件缺失
编号为7799的文件缺失
编号为7800的文件缺失
编号为7801的文件缺失
编号为7802的文件缺失
编号为7803的文件缺失
编号为7804的文件缺失
编号为7805的文件缺失
编号为7806的文件缺失
编号为7807的文件缺失
编号为7808的文件缺失
编号为7809的文件缺失
编号为7810的文件缺失
编号为7811的文件缺失
编号为7812的文件缺失
编号为7813的文件缺失
编号为7814的文件缺失
编号为7815的文件缺失
编号为7816的文件缺失
编号为7817的文件缺失
编号为7818的文件缺失
编号为7819的文件缺失
编号为7820的文件缺失
编号为7821的文件缺失
编号为7822的文件缺失
编号为7823的文件缺失
编号为7824的文件缺失
编号为7825的文件缺失
编号为7826的文件缺失
编号为7827的文件缺失
编号为7828的文件缺失
编号为7830的文件缺失
编号为7831的文件缺失
编号为7832的文件缺失
编号为7833的文件缺失
编号为7834的文件缺失
编号为7835的文件缺失
编号为7836的文件缺失
编号为7837的文件缺失
编号为7838的文件缺失
编号为7839的文件缺失
编号为7840的文件缺失
编号为7841的文件缺失
编号为7842的文件缺失
编号为7843的文件缺失
编号为7844的文件缺失
编号为7845的文件缺失
编号为7846的文件缺失
编号为7847的文件缺失
编号为7848的文件缺失
编号为7849的文件缺失
编号为7850的文件缺失
编号为7851的文件缺失
编号为7852的文件缺失
编号为7853的文件缺失
编号为7854的文件缺失
编号为7855的文件缺失
编号为7856的文件缺失
编号为7857的文件缺失
编号为7858的文件缺失
编号为7859的文件缺失
编号为7860的文件缺失
编号为7861的文件缺失
编号为7862的文件缺失
编号为7863的文件缺失
编号为7864的文件缺失
编号为7865的文件缺失
编号为7866的文件缺失
编号为7867的文件缺失
编号为7868的文件缺失
编号为7869的文件缺失
编号为7870的文件缺失
编号为7871的文件缺失
编号为7872的文件缺失
编号为7873的文件缺失
编号为7874的文件缺失
编号为7875的文件缺失
编号为7876的文件缺失
编号为7877的文件缺失
编号为7878的文件缺失
编号为7879的文件缺失
编号为7880的文件缺失
编号为7881的文件缺失
编号为7882的文件缺失
编号为7883的文件缺失
编号为7884的文件缺失
编号为7885的文件缺失
编号为7888的文件缺失
编号为7889的文件缺失
编号为7890的文件缺失
编号为7891的文件缺失
编号为7892的文件缺失
编号为7893的文件缺失
编号为7894的文件缺失
编号为7895的文件缺失
编号为7896的文件缺失
编号为7897的文件缺失
编号为7898的文件缺失
编号为7899的文件缺失
编号为7900的文件缺失
编号为7901的文件缺失
编号为7902的文件缺失
编号为7903的文件缺失
编号为7904的文件缺失
编号为7905的文件缺失
编号为7906的文件缺失
编号为7907的文件缺失
编号为7908的文件缺失
编号为7909的文件缺失
编号为7910的文件缺失
编号为7911的文件缺失
编号为7912的文件缺失
编号为7913的文件缺失
编号为7914的文件缺失
编号为7915的文件缺失
编号为7916的文件缺失
编号为7917的文件缺失
编号为7918的文件缺失
编号为7919的文件缺失
编号为7920的文件缺失
编号为7921的文件缺失
编号为7922的文件缺失
编号为7923的文件缺失
编号为7924的文件缺失
编号为7925的文件缺失
编号为7926的文件缺失
编号为7927的文件缺失
编号为7928的文件缺失
编号为7929的文件缺失
编号为7930的文件缺失
编号为7931的文件缺失
编号为7932的文件缺失
编号为7933的文件缺失
编号为7934的文件缺失
编号为7935的文件缺失
编号为7936的文件缺失
编号为7937的文件缺失
编号为7938的文件缺失
编号为7939的文件缺失
编号为7940的文件缺失
编号为7941的文件缺失
编号为7942的文件缺失
编号为7943的文件缺失
编号为7944的文件缺失
编号为7945的文件缺失
编号为7946的文件缺失
编号为7947的文件缺失
编号为7948的文件缺失
编号为7950的文件缺失
编号为7951的文件缺失
编号为7952的文件缺失
编号为7953的文件缺失
编号为7954的文件缺失
编号为7956的文件缺失
编号为7957的文件缺失
编号为7958的文件缺失
编号为7959的文件缺失
编号为7960的文件缺失
编号为7961的文件缺失
编号为7962的文件缺失
编号为7963的文件缺失
编号为7964的文件缺失
编号为7965的文件缺失
编号为7966的文件缺失
编号为7967的文件缺失
编号为7968的文件缺失
编号为7969的文件缺失
编号为7970的文件缺失
编号为7971的文件缺失
编号为7972的文件缺失
编号为7973的文件缺失
编号为7974的文件缺失
编号为7975的文件缺失
编号为7976的文件缺失
编号为7977的文件缺失
编号为7978的文件缺失
编号为7979的文件缺失
编号为7980的文件缺失
编号为7981的文件缺失
编号为7982的文件缺失
编号为7989的文件缺失
编号为7990的文件缺失
编号为7991的文件缺失
编号为7993的文件缺失
编号为9106的文件缺失
编号为9107的文件缺失
编号为9108的文件缺失
编号为9109的文件缺失
编号为9110的文件缺失
编号为9111的文件缺失
编号为9112的文件缺失
编号为9113的文件缺失
编号为9114的文件缺失
编号为9115的文件缺失
编号为9116的文件缺失
编号为9117的文件缺失
编号为9118的文件缺失
编号为9119的文件缺失
编号为9120的文件缺失
编号为9121的文件缺失
编号为9122的文件缺失
编号为9123的文件缺失
编号为9124的文件缺失
编号为9125的文件缺失
编号为9127的文件缺失
编号为9128的文件缺失
编号为9130的文件缺失
编号为9131的文件缺失
编号为9132的文件缺失
编号为9133的文件缺失
编号为9134的文件缺失
编号为9135的文件缺失
编号为9138的文件缺失
编号为9139的文件缺失
编号为9140的文件缺失
编号为9141的文件缺失
编号为9142的文件缺失
编号为9143的文件缺失
编号为9144的文件缺失
编号为9145的文件缺失
编号为9146的文件缺失
编号为9147的文件缺失
编号为9148的文件缺失
编号为9149的文件缺失
编号为9150的文件缺失
编号为9151的文件缺失
编号为9152的文件缺失
编号为9153的文件缺失
编号为9154的文件缺失
编号为9155的文件缺失
编号为9156的文件缺失
编号为9157的文件缺失
编号为9158的文件缺失
编号为9159的文件缺失
编号为9160的文件缺失
编号为9161的文件缺失
编号为9162的文件缺失
编号为9163的文件缺失
编号为9164的文件缺失
编号为9165的文件缺失
编号为9166的文件缺失
编号为9167的文件缺失
编号为9168的文件缺失
编号为9170的文件缺失
编号为9171的文件缺失
编号为9172的文件缺失
编号为9173的文件缺失
编号为9174的文件缺失
编号为9175的文件缺失
编号为9176的文件缺失
编号为9177的文件缺失
编号为9178的文件缺失
编号为9179的文件缺失
编号为9180的文件缺失
编号为9181的文件缺失
编号为9182的文件缺失
编号为9183的文件缺失
编号为9184的文件缺失
编号为9185的文件缺失
编号为9186的文件缺失
编号为9187的文件缺失
编号为9188的文件缺失
编号为9189的文件缺失
编号为9190的文件缺失
编号为9191的文件缺失
编号为9192的文件缺失
编号为9223的文件缺失
编号为9224的文件缺失
编号为9225的文件缺失
编号为9226的文件缺失
编号为9229的文件缺失
编号为9230的文件缺失
编号为9231的文件缺失
编号为9233的文件缺失
编号为9235的文件缺失
编号为9236的文件缺失
编号为9237的文件缺失
编号为9239的文件缺失
编号为9240的文件缺失
编号为9241的文件缺失
编号为9242的文件缺失
编号为9243的文件缺失
编号为9244的文件缺失
编号为9245的文件缺失
编号为9246的文件缺失
编号为9247的文件缺失
编号为9248的文件缺失
编号为9249的文件缺失
编号为9250的文件缺失
编号为9251的文件缺失
编号为9252的文件缺失
编号为9253的文件缺失
编号为9254的文件缺失
编号为9255的文件缺失
编号为9256的文件缺失
编号为9257的文件缺失
编号为9258的文件缺失
编号为9259的文件缺失
编号为9260的文件缺失
编号为9261的文件缺失
编号为9262的文件缺失
编号为9263的文件缺失
编号为9264的文件缺失
编号为9265的文件缺失
编号为9266的文件缺失
编号为9267的文件缺失
编号为9268的文件缺失
编号为9269的文件缺失
编号为9270的文件缺失
编号为9271的文件缺失
编号为9272的文件缺失
编号为9273的文件缺失
编号为9274的文件缺失
编号为9276的文件缺失
编号为9277的文件缺失
编号为9279的文件缺失
编号为9280的文件缺失
编号为9281的文件缺失
编号为9282的文件缺失
编号为9283的文件缺失
编号为9284的文件缺失
编号为9285的文件缺失
编号为9286的文件缺失
编号为9287的文件缺失
编号为9288的文件缺失
编号为9289的文件缺失
编号为9290的文件缺失
编号为9291的文件缺失
编号为9292的文件缺失
编号为9293的文件缺失
编号为9294的文件缺失
编号为9295的文件缺失
编号为9296的文件缺失
编号为9297的文件缺失
编号为9298的文件缺失
编号为9299的文件缺失
编号为9300的文件缺失
编号为9301的文件缺失
编号为9302的文件缺失
编号为9303的文件缺失
编号为9304的文件缺失
编号为9305的文件缺失
编号为9306的文件缺失
编号为9307的文件缺失
编号为9308的文件缺失
编号为9309的文件缺失
编号为9310的文件缺失
编号为9311的文件缺失
编号为9312的文件缺失
编号为9313的文件缺失
编号为9314的文件缺失
编号为9316的文件缺失
编号为9318的文件缺失
编号为9319的文件缺失
编号为9320的文件缺失
编号为9321的文件缺失
编号为9322的文件缺失
编号为9323的文件缺失
编号为9324的文件缺失
编号为9325的文件缺失
编号为9326的文件缺失
编号为9327的文件缺失
编号为9328的文件缺失
编号为9329的文件缺失
编号为9330的文件缺失
编号为9331的文件缺失
编号为9332的文件缺失
编号为9333的文件缺失
编号为9334的文件缺失
编号为9335的文件缺失
编号为9336的文件缺失
编号为9337的文件缺失
编号为9338的文件缺失
编号为9339的文件缺失
编号为9340的文件缺失
编号为9341的文件缺失
编号为9342的文件缺失
编号为9343的文件缺失
编号为9344的文件缺失
编号为9345的文件缺失
编号为9346的文件缺失
编号为9347的文件缺失
编号为9348的文件缺失
编号为9349的文件缺失
编号为9350的文件缺失
编号为9351的文件缺失
编号为9352的文件缺失
编号为9353的文件缺失
编号为9354的文件缺失
编号为9356的文件缺失
编号为9357的文件缺失
编号为9358的文件缺失
编号为9359的文件缺失
编号为9360的文件缺失
编号为9361的文件缺失
编号为9362的文件缺失
编号为9363的文件缺失
编号为9364的文件缺失
编号为9365的文件缺失
编号为9366的文件缺失
编号为9367的文件缺失
编号为9368的文件缺失
编号为9369的文件缺失
编号为9370的文件缺失
编号为9371的文件缺失
编号为9372的文件缺失
编号为9373的文件缺失
编号为9374的文件缺失
编号为9375的文件缺失
编号为9376的文件缺失
编号为9377的文件缺失
编号为9378的文件缺失
编号为9379的文件缺失
编号为9380的文件缺失
编号为9381的文件缺失
编号为9382的文件缺失
编号为9383的文件缺失
编号为9384的文件缺失
编号为9385的文件缺失
编号为9386的文件缺失
编号为9387的文件缺失
编号为9388的文件缺失
编号为9587的文件缺失
编号为9588的文件缺失
编号为9589的文件缺失
编号为9590的文件缺失
编号为9591的文件缺失
编号为9592的文件缺失
编号为9593的文件缺失
编号为9594的文件缺失
编号为9595的文件缺失
编号为9597的文件缺失
编号为9598的文件缺失
编号为9600的文件缺失
编号为9601的文件缺失
编号为9602的文件缺失
编号为9603的文件缺失
编号为9604的文件缺失
编号为9605的文件缺失
编号为9606的文件缺失
编号为9607的文件缺失
编号为9608的文件缺失
编号为9609的文件缺失
编号为9610的文件缺失
编号为9611的文件缺失
编号为9612的文件缺失
编号为9613的文件缺失
编号为9614的文件缺失
编号为9615的文件缺失
编号为9616的文件缺失
编号为9617的文件缺失
编号为9618的文件缺失
编号为9619的文件缺失
编号为9620的文件缺失
编号为9621的文件缺失
编号为9622的文件缺失
编号为9623的文件缺失
编号为9624的文件缺失
编号为9625的文件缺失
编号为9626的文件缺失
编号为9627的文件缺失
编号为9628的文件缺失
编号为9629的文件缺失
编号为9630的文件缺失
编号为9632的文件缺失
编号为9633的文件缺失
编号为9635的文件缺失
编号为9636的文件缺失
编号为9637的文件缺失
编号为9638的文件缺失
编号为9639的文件缺失
编号为9640的文件缺失
编号为9641的文件缺失
编号为9642的文件缺失
编号为9643的文件缺失
编号为9644的文件缺失
编号为9645的文件缺失
编号为9646的文件缺失
编号为9647的文件缺失
编号为9648的文件缺失
编号为9649的文件缺失
编号为9650的文件缺失
编号为9651的文件缺失
编号为9652的文件缺失
编号为9653的文件缺失
编号为9654的文件缺失
编号为9655的文件缺失
编号为9656的文件缺失
编号为9657的文件缺失
编号为9658的文件缺失
编号为9659的文件缺失
编号为9660的文件缺失
编号为9661的文件缺失
编号为9662的文件缺失
编号为9663的文件缺失
编号为9664的文件缺失
编号为9665的文件缺失
编号为9666的文件缺失
编号为9667的文件缺失
编号为9668的文件缺失
编号为9669的文件缺失
编号为9670的文件缺失
编号为9671的文件缺失
编号为9672的文件缺失
编号为9673的文件缺失
编号为9674的文件缺失
编号为9675的文件缺失
编号为9676的文件缺失
编号为9677的文件缺失
编号为9678的文件缺失
编号为9679的文件缺失
编号为9680的文件缺失
编号为9681的文件缺失
编号为9682的文件缺失
编号为9683的文件缺失
编号为9685的文件缺失
编号为9686的文件缺失
编号为9687的文件缺失
编号为9688的文件缺失
编号为9689的文件缺失
编号为9690的文件缺失
编号为9691的文件缺失
编号为9692的文件缺失
编号为9693的文件缺失
编号为9694的文件缺失
编号为9695的文件缺失
编号为9696的文件缺失
编号为9697的文件缺失
编号为9698的文件缺失
编号为9699的文件缺失
编号为9700的文件缺失
编号为9702的文件缺失
编号为9704的文件缺失
总计有2381个文件缺失
总计有146727条数据.

C:\Users\horn1\Desktop\node.js\66-理想论坛爬虫1.09 - insertdb.js>python insertDB.py
拟向数据库插入146727条记录
已向数据库插入146727条记录
插数据用时40秒

进行检查的checkfiles.js

//======================================================
// 在理想论坛帖子下载爬虫生成数据文件后进行检查
// 2018年5月6日
//======================================================
var fs=require('fs');    // 内置文件处理模块
var allfiles=[];        // 全部数据文件列表
var allInfos=[];        // 数据文件里获得的全部信息

//--------------------------------------
// 通用函数,返回当前日期时间 数据库记录时间用
//--------------------------------------
function currTime() {
    var date = new Date();
    var seperator1 = "-";
    var seperator2 = ":";
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    if (month >= 1 && month <= 9) {
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
    }
    var currentdate =date.getFullYear() + seperator1 + month + seperator1 + strDate
            + " " + date.getHours() + seperator2 + date.getMinutes()
            + seperator2 + date.getSeconds()+ " ";
    return currentdate;
}

//-------------------------------
// 得到带颜色(前景色)的文字,用于在控制台输出
// text:文字,color:前景色
//-------------------------------
function coloredText(text,color){
    var dic = new Array();

    dic["white"] = ['\x1B[37m', '\x1B[39m'];
    dic["grey"] = ['\x1B[90m', '\x1B[39m'];
    dic["black"] = ['\x1B[30m', '\x1B[39m'];
    dic["blue"] = ['\x1B[34m', '\x1B[39m'];
    dic["cyan"] = ['\x1B[36m', '\x1B[39m'];
    dic["green"] = ['\x1B[32m', '\x1B[39m'];
    dic["magenta"] = ['\x1B[35m', '\x1B[39m'];
    dic["red"] = ['\x1B[31m', '\x1B[39m'];
    dic["yellow"] = ['\x1B[33m', '\x1B[39m'];

    return dic[color][0]+text+dic[color][1];
}

function readFiles(){
    if(allfiles.length>0){
        var file=allfiles.pop();

        fs.readFile(file,'utf8',function(err,data){
            if(err){
                console.log('读取文件失败,因为'+err);
            }else{
                var infos=JSON.parse(data);
                allInfos=allInfos.concat(infos);
            }

            readFiles();
        });
    }else{
        console.log('总计有'+allInfos.length+"条数据.");
    }
}

//--------------------------------------
// 入口函数
//--------------------------------------
function main() {
    folder='./2018-05-06 21_36_5';// 数据文件所在目录

    fs.readdir(folder,function(err,files){
        if(err) throw err;

        // 预制查找数组
        var arr=new Array(9788-1);// 20563是总文件个数,从lixiang.js的输出可以找到,-1因为文件序号从0起
        for(var i=0;i<arr.length;i++){
            arr[i]=0;
        }

        // 只遍历一遍
        for(var index in files){
            var arrTmp=files[index].split(".");
            var sn=parseInt(arrTmp[0],10);
            arr[sn]=1;

            allfiles.push(folder+'/'+files[index]);
        }

        // 查哪个缺失
        var missed=0;
        for(var i=0;i<arr.length;i++){
            if(arr[i]==0){    // 为零的就是没找到该编号对应的文件的
                console.log(coloredText('编号为'+i+'的文件缺失','yellow'));
                missed++;
            }
        }
        console.log(coloredText('总计有'+missed+'个文件缺失','red'));

        readFiles();
    });
}

// 开始
main();

进行插DB的insertDB.py

#------------------------------------------------------------------------------------
# insertDB1.01,读取理想论坛爬虫生成的数据,然后写入DB
# 2018年4月29日
#------------------------------------------------------------------------------------
import pymysql
import time
import datetime
import os
import json

#------------------------------------
# 取得当前时间
#------------------------------------
def currTime():
    currTime=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
    return currTime

#------------------------------------
# 入口函数
#------------------------------------
def main(folder):
    starttime = datetime.datetime.now()

    # 打开目录从文件里取数据
    allinfos=[]
    for filename in os.listdir(folder):
        filePathname=folder+"/"+filename

        with open(filePathname,'r',encoding='utf-8') as fObj:
            infos=json.load(fObj)
            #print("此时info="+str(infos))
            allinfos.extend(infos)
    print("拟向数据库插入"+str(len(allinfos))+"条记录")

    # 打开数据库并插值
    conn=pymysql.connect(host=',db='test',charset='utf8')
    cur=conn.cursor();

    sum=0
    for info in allinfos:
        try:
            arr=[info['楼层'],info['作者'],info['日期'],info['时间'],currTime(),info['url'],info['title'],info['内容']]
            count=cur.execute('insert into test.topic18(floor,author,tdate,ttime,addtime,url,title,content) values (%s,%s,%s,%s,%s,%s,%s,%s)',arr)
            sum+=count
        except Exception as e:
            print("出现异常:"+str(e)+",此时info="+str(info))
            continue;

    conn.commit()
    conn.close()

    print("已向数据库插入"+str(sum)+"条记录")

    # 计算用时
    endtime = datetime.datetime.now()
    print("插数据用时"+str((endtime - starttime).seconds)+"秒")

# 开始
main("./2018-05-06 21_36_5")

2018年5月6日22点31分

05-07 15:10