美文网首页我爱编程
Node.js爬虫 抓取简书并生成自己的博客

Node.js爬虫 抓取简书并生成自己的博客

作者: 皮卡乒乓 | 来源:发表于2018-03-21 11:06 被阅读0次

    1、前言

    认识我的同学可能知道我有自己的博客,可由于只会前台导致自己的博客都是用纯静态页面写的,导致工作量很大,而我在坚持了两个月后决定放弃了。好在会点node,但是写个后台管理吧对我来说不现实,费时间,所以我在想能不能将我简书所有的文章移植到博客上,用简书做我的后台管理。经过一周左右的尝试,完美解决。

    2、码前尝试

    很多人都知道,可以一键打包下载自己的简书文章,但对于代码实现来说,却并不简单,所以我瞄定了用爬虫来实现。


    TIM截图20180320134144.png

    3、过程原理

    • 1、数据实现:每小时去根据我的简书地址爬取,如果我的简书内容有新添加的内容,则将这篇文章的标题,分类,时间,字数,内容入库,如果有内容变化,则更新当前数据,如果没变化,则不管。
    • 2、后台服务实现:用node写接口调用我爬取的数据,有按标题搜索,按分类搜索等等。
    • 3、前台实现:用vue+bootstrap实现页面

    4、过程

    • 1、爬取数据

    这里用到的node库有crawler和node-schedule,crawler用来爬数据,node-schedule用来做定时任务,每小时的0分0秒去抓取数据

    在爬取之前我想到两种方式,1是根据ajax分析数据,2是直接爬取页面,分析页面。当然第一种最简单,二话不说,直接network分析一波,于是


    network.png

    结果是这样的


    network2.png
    这还有什么可说的,就直接爬呗。。。
    我们可以根据每一个li,找打具体的每一个页面,然后爬到每一个页面的值,我为了方便不用写样式,但又不需要无用的数据入库,则只将note标签的数据入库,后面的广告和底部推荐则不管
    book.png

    样式的话通过我的尝试发现简书只用到了两个css文件,那当然,我就顺带着爬走了。

    • 2、入库

    我选用的mysql作为我的数据库,简单方便。


    mysql.png

    3、接口
    其实我会的node并不是很多,这只是一些简单的查询功能,当然我都支持跨域访问了。
    根据标题关键字搜索
    根据分类关键字搜索
    查询博客分类
    查询博客标题

    4、前台调用

    在MVVM大行其道的当今,当然是选择用它了,没错就是VUE了,由于没有美工,我就不要脸的自己当美工了,那当然是用bootstrap了,成型后大致是这样的


    blog.png

    相关文章

      网友评论

        本文标题:Node.js爬虫 抓取简书并生成自己的博客

        本文链接:https://www.haomeiwen.com/subject/rtdvqftx.html