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

Search-Spider-Blog

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

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

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

代码地址

使用说明

  1. 环境配置

after clone && cd

npm i

  1. 对 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选择器
}
}

  1. 脚本指令说明

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

  1. Server接口说明

/load : 重新加载博客数据

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

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

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

{
type: 'title/date/content',
articles: [ // 一般length为1
{
title: 'title',
date: 'date',
content: 'content',
path: '/url' // 文章链接地址 相对的
}
],
indexs: [] // 搜索到内容的索引位置
}

  1. 注意: 提供了多关键词的搜索, 如keyword1+keyword2 或者 keyword1 keyword2

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

工作流程

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

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

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

效果查看

关键字:node.js, JavaScript, Hexo

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部