1.目的
学习信息的获取方式有很多,经常使用的公众号、知乎等平台上不乏优质的学习资源。但是获取资源依赖客户端,并且操作整理资料不太方便,便萌生了使用爬虫等技术整合出一个方便获取、管理学习资源的软件,暂且叫KnowledgeManager。
2.设计
(1)爬虫
想做KnowledgeManager的初衷是将众多公众号的文章使用爬虫收集,因此应该是会采用scrapy框架。后来又看到了一个WCplus的软件,也是针对公众号爬取文章,但是他还加了文章分类、垂直搜索等功能。觉得这个软件不错,于是想模仿一下,但是看了下wcplus的源码,发现需要用手机代理,然后自己通过crack的方式试了下wcplus的软件,发现效果并不好,但是wcplus的flask+mongoDB+scrapy+VUE dashboard的设计还是值得借鉴的。
除了公众号,知乎、知识星球这样网页形式存储的知识也是不错的爬取目标。
(2)数据库
由于涉及到管理与分类,就离不开数据库,目前暂时的设计是使用MongoDB这样的非关系数据库,存储文章位置、标题、分类等信息。具体数据库设计还是后面设计到的时候改进。
(3)前后端
使用python进行开发,后期可能还会把项目挂到服务器上增加新推送定时爬取这样的功能,所以要做成前后端分离。借鉴wcplus应该是使用flask作为后端,前端还不确定,到时候看看有没有成熟的dashboard框架可以用。
(4)其他
考虑到后期如果挂到服务器上,云服务器存储又相对较小,可能应用的方向只能是家用私服这样的,运行在NAS或者有大存储的软路由上也是个不错的选择。
3.功能TODO
- 指定公众号文章爬虫
- 指定知乎账号爬虫
- 指定知识星球爬虫
- MongoDB存储
- flask+dashboard管理
- 定期爬取新文章
wcplus是从weixin_crawler衍生出的产品。weixin_crawler从开源已经私有化。weixin_crawler遗存地址为:https://github.com/54xingzhe/weixin_crawler,原本的代码挺好的,但是。。具体请看此帖:https://www.v2ex.com/t/551219,于是就有大神将wcplus破解:https://github.com/fuckwonderfulsuccess/WCplus,感谢这位大神的crack,我也是在这份代码上试用了wcplus并且阻止了自己入坑的脚步,wcplus使用手册地址:https://shimo.im/docs/dA7ejdOQuPwo7NZV/read。
有啥问题欢迎关注公众号直接后台问我,博客我不常上,但是公众号有消息推送,我会第一时间回复的。