乐趣区

关于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('写入胜利');
      })
    })

最终成绩:

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

退出移动版