关于javascript:nodejs爬取简单网站小说生成txt

找了一个没有反爬虫机制的一般网站,应该是ssr的,间接申请返回的html中就有全副的dom内容,没有异步申请,所以抓内容很容易。

一开始应用js脚本,发现申请跨域,所以改为node发送,步骤和代码很简略。

1.异步申请

应用了request-promise包+promise

2.解决内容

应用了cheerio,返回的内容间接是残缺的html,cheerio能够把字符串的html转为dom构造,用法和jq差不多,很不便,而且我扒的网站页面构造也很简略,所有的小说文本都在id为content的div里

3.生成txt

间接fs写入文件即可

全副代码

    var rp = require('request-promise');
    var cheerio = require('cheerio');
    var fs = require('fs')
    
    var start = 786776
    var end = 786844
    var arr = new Array(end-start+1).fill(null).map(function(item,index){
      return rp('小说网址'+(start+index)+'.html')
    })

    Promise.all(arr).then(function(res,err){
      if(err){
        console.log('err')
      }
      var str=''
      res.map(function(item,index){
        var $ = cheerio.load(item.toString());
        var table=$('body').find('#content').eq(0).text();
        str+=table
      })
      fs.writeFile('恶徒.txt',str,'utf8',function(error){
          if(error){
              console.log(error);
              return false;
          }
          console.log('写入胜利');
      })
    })

最终成绩:

首次尝试,之后再试试爬异步申请的网站,如有问题请指出,感激。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理