为你的博客添加搜索功能吧!

Search-Spider-Blog

提供个人博客文章搜索服务, 只需要配置个人博客地址, 载入博客数据, 开启Server服务, 即可开启文章搜索服务。

blogconfig.json配置文件监控, 修改后服务及时地更新博客数据。

本人用的为Hexo Blog, 所以Hexo用户体验更佳

代码地址

使用说明

  • 环境配置

    # after clone && cd
    npm i 
  • blogconfig.json 进行配置(以我个人博客为例)

    
    {
        "url": "http://moyuyc.github.io/",   //blog url
        "mainPagePath": "/archives/",        // 所有文章页面(也就是第一页)
        "spiderConfig": {
            "ArticleLinkEl": ".post-title-link", // 在"mainPagePath"中进入文章页面的超链接jQuery选择器
            "splitPagePath": "/archives/page/${page}/", // 所有文章分页的规则, ${page}表示页码
            "ArticleDateEl": "time",         // 在文章页面中日期的Jquery选择器
            "ArticleTitleEl": ".post-title", // 在文章页面中标题的Jquery选择器
            "ArticleContentEl": ".post-body" // 在文章页面中内容的Jquery选择器
        }
    }
  • 脚本指令说明

        
    npm start # 开启Server服务(默认端口7899, 可在scripts中修改), 开启后会自动更新一次数据
    npm load  # 更新博客数据
  • Server接口说明

    1. /load : 重新加载博客数据

    2. /api/search/(:type) : type可选值为date/content/title/all, 根据什么来搜索, 参数格式为?q=想搜什么&n=数目(可选)

    3. /api/search/all : 当未传q时, 返回所有文章

    4. 2 3点中的返回数据说明 :

      
      {
          type: 'title/date/content',
          articles: [ // 一般length为1
              {
                  title: 'title',
                  date: 'date',
                  content: 'content',
                  path: '/url'   // 文章链接地址 相对的
              }
          ],
          indexs: [] // 搜索到内容的索引位置
      }
    5. 注意: 提供了多关键词的搜索, 如keyword1+keyword2 或者 keyword1 keyword2

    6. 可以根据自己的需求, 直接使用 /api/search/all 所有数据做为静态数据进行本地搜索, 或者使用search服务都可

工作流程

  1. 爬取博客文章数据, 保存至db.json中, 未使用数据库, 是为了轻量与方便移植, 而且只是提供个人服务

  2. 为了更好的拓展性, 使用cheerio, 使用jQuery选择器 配置即可

  3. 获取数据后, 便是搭建http服务, 提供搜索接口, 为了方便用户展示, 还提供了搜索到内容的索引位置

效果查看

clipboard.png

clipboard.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值