友链朋友圈前/后端开发记录
项目介绍
项目地址:https://github.com/Rock-Candy-Tea/hexo-circle-of-friends
本篇博客主要是友链朋友圈的前/后端开发记录,以及后续更新规划,如果您有好的想法,欢迎留言贡献。
开发进度
从2021年11月左右开始重构友链朋友圈项目,采用爬虫框架Scrapy来完成对旧版(3.x版本)项目的重构,也就是最初的4.0版本,该版本仅仅是做到了与旧版功能兼容,并未提供新的功能。随着各种issues的解决和新的idea不断地推动下,目前的朋友圈功能已经丰富了许多,相较于旧版(3.x版本),5.x版本新增了如下功能:
- 增加了nexmoe、Yun、stun、stellar主题的友链和文章爬取
- 采用了feedparser解决了旧版本一直以来无法兼容rss订阅格式的问题
- 支持自定义定义后缀功能,完善对于不规则友链的适配
- 多个友链页面同时爬取
- 支持HTTP代理
- 新增了sqlite、mysql、mongodb三种数据库部署的支持
- 新增了服务器server部署和docker部署方式
- 将api集成到主仓库,并添加了众多与前端交互的api
- 屏蔽站点优化,支持正则表达式
- 配置项友链添加json配置,支持通过url获取友链配置,支持动态更新
- 前端管理面板,告别繁琐的配置
- 增加极简模式
开发趣闻:由于想做一个管理面板,构思好需求后,首先找来了Heo帮我画UI(
虽然后来没怎么用上),然后经过大概半个月,后端开发完成。由于店长咕咕咕,前端部分的开发也由我来完成了(众所周知友链朋友圈开发组只有一个人)。
做之前我的前端大概在html、css、js,jquery的水平,既然要做,那就通过这次开发学到点新东西。于是决定从现有的木木的前端样式入手,将他的方案用vue重写一遍,并在此基础上添加管理面板。因此整个国庆7天基本都是在学vue:边看文档,边看视频,边google,边写友圈前端。总之,尽管样式很平庸,还是磕磕绊绊把前端撸出来了。
(不过话又说回来,前后端一起写的感觉还不错,前端想要什么接口,自己写就可以了,接口规范也是自己定。交流成本为零,因此开发效率是极其高的,大概这就是全栈开发的乐趣了)
版本更新
当前版本5.0.8
新版本的更新规划如下:
- 暂无
BUG提交
如果您在使用过程中出现任何问题,请联系我提交反馈!
推荐在github上提交issue,或者在这里的评论区进行留言。
在寻求帮助时,希望您提供详细的错误描述与必要的信息,方便我快速定位问题。
附1:
附2:崩溃提问收费表(bushi)
附3:论日志的重要性
问题解决
在这里记录一些在开发出现的问题,以及解决思路。(出现的问题与解决的问题太多了,这部分暂时咕咕咕)
1 定时任务重复运行爬虫报错的问题
一开始在server和docker部署方案的编写中,通过启动定时任务多次运行爬虫,会报错twisted.internet.error.ReactorNotRestartable
,原因是twisted不能重复运行。解决方案参考这里,另起一个进程启动reactor。
相关代码:
1 | from scrapy.utils.project import get_project_settings |