zoukankan      html  css  js  c++  java
  • 笔趣阁小说爬虫

    var https=require('https');
    var fs = require('fs'); //文件模块
    var iconv = require('iconv-lite');
    var cheerio = require('cheerio');
    // 章节目录页面地址
    https.get('https://www.bequge.com/11_11694/',function(res){
    var length=0;
    var arr=[];
    res.on("data",function(chunk){
    arr.push(chunk);
    length+=chunk.length;
    });
    res.on("end",function(){
    var data=Buffer.concat(arr,length);
    var change_data = iconv.decode(data,'gb2312');
    var $=cheerio.load(change_data.toString());
    var listArray = $('dd');
    for(var i = 9; i<listArray.length; i++){
    setTimeout(function(){
    var ddObj = listArray[this.i];
    var url = ddObj.children[0].attribs["href"];
    var text = ddObj.children[0].children[0].data;
    if(text.indexOf("章")==-1){
    return;
    }
    var filePath = "./三寸人间/"+text+".txt";
    https.get('https://www.bequge.com'+url,function(response){
    var len = 0;
    var array = [];
    response.on("data",function(chunk){
    array.push(chunk);
    len+=chunk.length;
    });
    response.on("end",function(){
    var data=Buffer.concat(array,len);
    var change_data = iconv.decode(data,'gb2312');
    var $=cheerio.load(change_data.toString());
    var data = $('#content');
    fs.writeFile(filePath, data.text(), { 'flag': 'a' }, function(err) {
    if (err) {
    throw err;
    }
    console.log('写入完成.');
    });
    });
    })
    }.bind({
    i: i
    }),2000)
    }

    })
    });
    ps: 写这个的原因是想在我的代码编辑器里看小说,上班的时候比较安全
  • 相关阅读:
    如何快速开发一个自己的项目脚手架?
    Vue模板语法中数据绑定
    vue组件间通信八种方式
    浏览器渲染页面流程
    双飞翼布局
    单行截断和多行截断问题
    flex 布局实现固定头部和底部,中间滚动布局
    defer 和 async 区别
    数学之美(统计语言模型)
    react 源码之setState
  • 原文地址:https://www.cnblogs.com/WarrenLee/p/9947798.html
Copyright © 2011-2022 走看看