分享文章:个人博客开发系列:文章实时保存
优采云 发布时间: 2022-11-30 16:12分享文章:个人博客开发系列:文章实时保存
摘要:前言 一般用来写东西的网站都会有实时编辑保存的功能。文章保存时,实时保存的数据会被清空。源码显示该功能只在个人博客后台使用,并没有多账号系统,所以在双方合众都保存了一条记录。
前言
一般用来写东西的网站都会有实时编辑保存的功能。对于用户来说是非常实用的功能。作为个人博客,虽然用处不是那么明显,但还是想实现这个功能,只是作为练习。
实施思路
使用WebSocket实现浏览器与服务器的实时通信;
服务端使用Redis缓存实时编辑的文章(编辑时文章变化频繁,频繁的读写数据库操作不是很好的解决方案);
服务器使用定时任务(比如每天凌晨3:00)将Redis缓存数据存储到MySQL数据库中;
浏览器首次进入新增文章页面时,使用WebSocket从服务器获取数据(先从Redis中查找,如果没有再从MySQL数据库中查找);
浏览器首次进入文章编辑页面时,不需要从服务器获取数据;
使用Vue.js的watch*敏*感*词*文章的变化,变化时使用WebSocket向服务器传输数据。
文章保存时清空Redis和MySQL中实时保存的数据。
源代码
谈话很便宜。给我看代码。
" />
阐明
<p>本功能只是个人博客后台使用,没有多账户体系,所以Redis和MySQL中都是保存一条记录。如果需要按不同用户来保存的话,需要自行开发。
代码比较多,具体的代码就不贴了,有兴趣的可以去我的GitHub上查看源码。这里只说明一下各个文件中代码的用处。
</p>
1. /server/util/draft-socketio.js
服务器端 WebSocket 服务使用 socket.io 库。
2./server/util/draft-redis.js
Redis 的 set 和 get 公共方法。
3./server/util/redis-mysql.js
redisToMysqlTask:定时同步Redis数据到MySQL数据的方法,使用node-schedule库。
getDraftPostFromMysql:当Redis中不存在数据时,查询MySQL中的数据。
clearDraftPostOfMysql:从MySQL中删除数据(文章保存后操作)。
" />
4. /src/main.js
浏览器首先引入 socket.io,使用 vue-socket.io 和 socket.io-client 库。
import VueSocketio from "vue-socket.io";
import socketio from "socket.io-client";
Vue.use(VueSocketio, socketio("http://localhost:9000", {
path: "/testsocketiopath"
}));
5. /src/pages/Edit.vue
使用WebSocket从服务器获取数据,并将数据实时传输到服务器进行存储。
总结
整个功能其实就是WebSocket、Redis、MySQL的使用,之前都用过,所以开发起来还是比较容易的。最重要的是先想好解决办法。
最后,像往常一样索取 fork 和 star。
分享文章:微信公众号文章采集
采集
网站:
使用功能点:
网址
寻呼列表信息采集
搜狗微信搜搜:搜狗微信搜索是搜狗于2014年6月9日推出的微信公众平台。“微信搜索”支持搜索微信公众号和微信文章。您可以使用关键词搜索相关微信公众号或微信公众号推送的文章。不仅在PC端,搜狗手机搜索客户端也会推荐相关的微信公众号。
搜狗微信文章采集数据说明:本文采集搜狗微信-搜索-优采云
大数据中的所有文章信息。本文仅以“搜狗微信-搜索-优采云
所有文章信息大数据采集”为例。在实际操作过程中,您可以根据自己的数据采集需要,更改搜狗微信的搜索词。
搜狗微信文章采集
详细采集
字段说明:微信文章标题、微信文章关键词、微信文章摘要、微信公众号名称、微信文章发布时间、微信文章地址。
第一步:创建采集任务
1)进入主界面,选择“自定义模式”
2) 将要采集的网址复制粘贴到网址输入框中,点击“保存网址”
第 2 步:创建翻页循环
" />
1)打开右上角的“进程”。点击页面文章搜索框,在右侧的操作提示框中选择“输入文字”
2)输入要搜索的文章信息,这里以搜索“优采云
大数据”为例,输入完成后点击“确定”按钮
3)“优采云
大数据”会自动填入搜索框,点击“搜索文章”按钮,在操作提示框中选择“点击此按钮”
4) 页面出现“优采云
大数据”的文章搜索结果。将结果页面下拉至最下方,点击“下一页”按钮,在右侧的操作提示框中选择“循环点击下一页”
第 3 步:创建列表循环并提取数据
1) 移动鼠标选中页面第一篇文章区块。系统会识别出该块中的子元素,在操作提示框中选择“选择子元素”
2)继续选择页面中第二篇文章的区块,系统会自动选择第二篇文章中的子元素,并识别出页面中其他10组相似元素,在操作提示框中选择“全选” “
" />
3)我们可以看到页面上article block中的所有元素都被选中了,变成了绿色。在右侧的操作提示框中,出现字段预览表,将鼠标移至表头,点击垃圾桶图标即可删除不需要的字段。选择字段后,选择“采集
以下数据”
4)由于我们还要采集
每篇文章的url,所以还需要提取一个字段。点击第一篇文章链接,再点击第二篇文章链接,系统会自动选择页面上的一组文章链接。在右侧的操作提示框中,选择“采集
以下链接地址”
5) 字段选择完成后,选择对应的字段,自定义字段的命名。完成后点击左上角“保存并开始”开始采集任务
6)选择“开始本地采集
”
第四步:数据采集与导出
1)采集完成后,会弹出提示,选择“导出数据”,选择“合适的导出方式”,将采集到的搜狗微信文章数据导出
2)这里我们选择excel作为导出格式,数据导出如下图