首页 > 经验记录 > 说起来可能有点奇怪,我写了个 NodeJS 爬虫

说起来可能有点奇怪,我写了个 NodeJS 爬虫

nodejs 这玩意,写法基本上和 js 是差不多的。
想着到时候微服务跨语言调用的时候说不准也能有机会用到,就看了看。
 
也挺简单的,如果是指增删改查之类的话。
不过起个服务、写写增删改查着实没意思,所以今天写了个爬虫玩玩
git地址: https://github.com/skypyb/anime-spider
 
 
运行起来(如果你的电脑有node环境的话):

git clone https://github.com/skypyb/anime-spider.git
npm install
node main.js

 

说明:

  • 主要是采用事件机制监听爬虫数据, 方便做聚合等操作
  • 现在的话只能爬一下B站和bangumi的,MAL和SATI 之后再看吧,没空写了
  • 现在都是一页页的爬,之后改成异步爬虫 ( B站爬的还是挺快的,毕竟是API请求。 bangumi这种后端渲染出来的HTML页面爬起来是有点慢 )

 
main.js:

const excutor = require('./spider/excutor');
excutor.registrListener('spider.animerank.bilibili', adminInfos => {
    /*
    array(adminInfos) element:
    BilibiliAnime {
        name: '天降之物Final 我永远的鸟笼',
        imgUrl: 'http://i0.hdslb.com/bfs/bangumi/b00b6cecf7a476bcf9980a231814f46782b3d059.jpg',
        score: '9.8',
        badge: '',
        mediaId: 973,
        rank: 198
    }
    */
    //do..
    // console.log(adminInfos);
});
excutor.registrListener('spider.animerank.bangumi', adminInfos => {
    /*
    array(adminInfos) element:
    BangumiAnime {
        name: '少女与战车 剧场版',
        imgUrl: '//lain.bgm.tv/pic/cover/l/76/f3/72266_p0Nxo.jpg',
        score: '8.4',
        id: 'item_72266',
        rank: 48,
        desc: '1话 /  2015年11月21日 / 水島努 / 杉本功',
        raterNum: 3183
    }
    */
    //do...
    // console.log(adminInfos);
});
// execute spider
excutor.bilibili();
excutor.bangumi();

 

能获取到的数据

  • bilibili 的番剧排行榜-评分正序
    • 事件  spider.animerank.bilibili
  • bangumi 的动画排行榜-评分正序
    • 事件  spider.animerank.bangumi

 

依赖

  • superagent:    HTTP请求
  • cheerio :   Dom解析
           


1 COMMENT

  1. stormynight2020-03-03 14:08

    kusa,居然和我做的爬虫一模一样的功能(*/ω\*)

EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00