全自动文章采集网源码2020( 百度文库使用Beego(Golang)开发的开源文库系统。)
优采云 发布时间: 2022-01-24 03:02全自动文章采集网源码2020(
百度文库使用Beego(Golang)开发的开源文库系统。)
一、开源项目简介
参考百度文库,使用Beego(Golang)开发的开源文库系统。
二、功能概览文档在线阅读
DocHub库使用svg矢量图来实现文档阅读体验。在我所知道的图书馆网站中,新浪艾问通过png等图片提供文档阅读体验。
与 png、jpeg 等图片格式相比,SVG 有很大的优势,至少放大后不会失真,而且相比 JPEG 和 GIF 图片,svg 体积更小,压缩性更强。DocHub通过gzip压缩svg文件,一般情况下文件大小可以减少70%,比如200kb svg,gzip压缩后大小只有60kb左右。
使用 svg 大大提高了加载速度,优化了内容的阅读体验。
可在线阅读的办公文档
这需要两层转换:
office --> pdf --> svg
之前考虑过office文档不转换,然后直接上网浏览,但是解决方案比较复杂,部署也不容易,至少我没有部署成功……
在线阅读PDF文档
通过pdf2svg转换PDF文档进行在线阅读
我没有使用mozila的pdf.js作为PDF文档阅读的实现方案,主要是我没有解决pdf.js分片分页加载的问题,每次都需要下载整个PDF文档提供阅读. 如果文档很大,用户需要等待很长时间,也会消耗服务器带宽资源。
mobi、epub、chm文档在线阅读
使用 calibre 将文档转换为 PDF,然后将 pdf 转换为 svg。
目前该功能尚未实现,暂时无法在线阅读epub、mobi等文档。
全部研究
全文搜索功能之前是用coreseek开发实现的,现在coreseek官网已经停掉了……打算用elasticsearch重新实现这个功能。
文档采集功能【TODO】
在建站初期,网站内容的填充是一个很大的难点。
不过在GitBook、ReadTheDoc等网站上,有大量的开源技术文档,提供mobi、pdf、epub离线文档下载。
据初步统计,GitBook 中有超过 100,000 个文档,估计可用文档数为 50,000。每个文档提供 3 种格式的下载。仅从 gitbook采集 文档中,就有 150,000 个文档被编入库。大量的文档。
然后,可以使用搜索引擎搜索filetype:文档格式+搜索关键字,如filetype:pdf入门教程,你会发现惊喜!如果您不相信我,请尝试分配以下两个链接地址以在浏览器中打开:
https://cn.bing.com/search?q=filetype%3apdf+%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B&first=11
https://www.sogou.com/web?query=filetype%3Apdf+%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B
如果你爬取其他文档,一年之内,单*敏*感*词*匹马建立一个拥有数百万文档的图书馆网站应该不成问题。
但是,现在已经建立了综合图书馆网站,例如百度图书馆等。如果你打算做一个综合性的图书馆网站,那还是不现实的,因为空间太小了。
但是,你可以做一个专注于某个方向的图书馆网站,例如课后练习和答案的图书馆网站,IT行业图书馆网站,教育图书馆网站等。如果你专注于一个行业方向,那么仍有很大的增长空间。和图片网站一样,现在很多搜索引擎都可以搜索图片,但是Pinterest、Petalnet等还没有做到吗?
为您提供程序,也为您提供思路。
积分函数
用户登录、上传、分享文件,获得奖励积分;用户需要消耗积分才能下载文件
阅读文档水印功能
在提供阅读的 svg 文件上添加水印
三、技术选型后端
Go语言框架Beego
前端
基于 Bootstrap 的前端框架 Flat-UI
数据库
MySQL,数据存储
依赖环境 Libreoffice(或 Openoffice)
用于将办公文档转换为 PDF
使用命令:
soffice --headless --invisible --convert-to pdf path/to/officefile --outdir path/to/outdir
pdf2svg
请注意,这使用了最新版本的 pdf2svg
pdf2svg,用于将 PDF 转换为 svg 矢量图像以供阅读。
使用命令:
pdf2svg []
口径
用于将mobi、chm、epub等文档转为PDF,再将pdf转为svg
注:mobi、epub等文档在线阅读功能暂未实现
阿里云OSS
存储办公文档、PDF 文档和 svg 文件
注:目前只支持阿里云的OSS云存储,暂时不支持其他云存储(其他云存储我会花时间开发扩展),不支持本地化存储(现在云存储和CDN价格比以前便宜很多)
四、界面显示页面列表
没有不看脸的时代……
五、开源协议
使用 Apache2.0 开源协议
六、源地址