资讯专栏INFORMATION COLUMN

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

vboy1010 / 3397人阅读

摘要:提供个人博客文章搜索服务只需要配置个人博客地址载入博客数据开启服务即可开启文章搜索服务。对配置文件监控修改后服务及时地更新博客数据。

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接口说明

/load : 重新加载博客数据

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

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

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

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

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

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

工作流程

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

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

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

效果查看

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90897.html

相关文章

  • 现代后端开发者必备技能-2018版

    摘要:现在开始创建一个包并分发给其他人使用,并确保遵循你迄今为止学到的标准和最佳实践。第步实践对于练习,继续编写单元测试,以完成目前为止所做的实际任务,特别是你在步骤中所做的练习。 今天的Web开发与几年前完全不同,有很多不同的东西可以很容易地阻止任何人进入Web开发。这是我们决定制作这些循序渐进的视觉指南的原因之一,这些指南展示了更大的图景,并让任何人清楚了解他们在网页开发中扮演的角色。 ...

    eternalshallow 评论0 收藏0
  • 你的站点插上ElasticSearch的翅膀

    摘要:下载并安装目前的最新稳定版为,如果之后版本有升级,请将相应的版本号替换掉上面的。在实现的过程中,貌似对中文的支持不是那么好,所以接下来会尝试使用一下中文分词器来看看效果,顺利的话会再出一篇文章。 原文来自:https://jellybool.com/post/setup-slasticsearch-on-your-website 在我的博客按Shift+S就可以呼出搜索框,可...

    JouyPub 评论0 收藏0
  • 你的博客添加访问量统计

    摘要:所以我已经将服务迁移至上,有兴趣的同学请移步最新的一篇博文博客访问量统计工具查看最新版本的使用方法。但是针对博客的访问量统计,却没有什么可用的工具。 本文最初发布于我的个人博客:咀嚼之味 2016.04.23 通告: Hit Kounter 原本部署于 SAE 上,而近期 SAE 针对使用 MySQL 的应用开始收费。本项目只是一个本人使用业余时间开发的小工具;它本身包含的功能也很精...

    gekylin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<