Comments (6)
这边需要说明一下我们为什么选择了以发布时间作为依据:
1,许多个人博客文章不怎么习惯给文章加updated,那么文章的更新时间则会按照hexo g的时间。如果友链中的小伙伴没有对他的每篇文章加上updated的话,它的某一次更新博客会导致友链朋友圈的爬虫把未更新的文章一样当作有更新的文章进行计算,直接占满朋友圈(即使它只是新发布或更新了一篇文章或者做了友链的更新)
2,同时在没办法保证每位小伙伴都在主页的文章处有更新时间的情况下,主页爬取规则会失效。而sitemap规则我们已经打算在2.0版本废弃,换成更通用的atom和rss,虽然一样可以爬到更新时间,仍然受上一个原因影响
3,在文章没加上date、链接不变的情况下,发布时间改变不会导致重新爬取而导致出现原因1的情况,只会被当作重复爬取而不被上传。
我们经过讨论觉得没办法很好的处理上述问题,因此可能不会增加此功能。如果对这个功能有自己实现的想法可以回复提出,感谢您的支持与反馈!
from hexo-circle-of-friends.
这边需要说明一下我们为什么选择了以发布时间作为依据:
1,许多个人博客文章不怎么习惯给文章加updated,那么文章的更新时间则会按照hexo g的时间。如果友链中的小伙伴没有对他的每篇文章加上updated的话,它的某一次更新博客会导致友链朋友圈的爬虫把未更新的文章一样当作有更新的文章进行计算,直接占满朋友圈(即使它只是新发布或更新了一篇文章或者做了友链的更新)
2,同时在没办法保证每位小伙伴都在主页的文章处有更新时间的情况下,主页爬取规则会失效。而sitemap规则我们已经打算在2.0版本废弃,换成更通用的atom和rss,虽然一样可以爬到更新时间,仍然受上一个原因影响
3,在文章没加上date、链接不变的情况下,发布时间改变不会导致重新爬取而导致出现原因1的情况,只会被当作重复爬取而不被上传。
我们经过讨论觉得没办法很好的处理上述问题,因此可能不会增加此功能。如果对这个功能有自己实现的想法可以回复提出,感谢您的支持与反馈!
的确我没有考虑到存在很多博主不会主动添加updata,实现这个功能确实会比较麻烦。我一开始的想法是,更新的部分是一个单独的逻辑,不和新文章重合。即使没有在博文的front-matter中标注更新,也可以通过特定的标签去识别文章是否更新了,例如在volantis中在文章底部会有
<div class="new-meta-item date" itemprop="dateUpdated" datetime="2021-07-11T18:00:35+08:00"><a class="notlink"><i class="fas fa-edit fa-fw" aria-hidden="true"></i><p>更新于:2021年7月11日</p></a></div>
其中itemprop="dateUpdated"标志着文章更新了。但是这种方式确实很麻烦,而且不同的主题会有区别。
如果可以的话,可以先对update进行一次爬取,之后再分主题进行一次爬取,可以先考虑一些用户基数比较大的主题,比如next、butterfly、volantis等的爬取。最后可将新发文章和更新的文章分栏(?或者其他形式)呈现出来。
from hexo-circle-of-friends.
有通用规则(比如atom和rss,但暂时还不太清楚它的更新时间判断是根据update、文章修改日期还是hexo g的时间来判断)
然后以及对每篇文章具体分析的也会增加爬取分析时间(这也是现阶段在尽量避免的事,我们在考虑抛弃sitemap的原因就是对具体文章的笼统爬取,而具体爬取又会导致时间增加)如果要实现这个功能可能会在友链朋友圈的基础上再开一个辅助项目,我可以先做做测试看看(丢2.1的计划里了
from hexo-circle-of-friends.
@hermitlsr 这个功能打算直接用atom,rss,sitemap三个规则直接抓取,不会再写单页抓取。
另外我们会以分页的方式实现这个功能,即单页以创建时间、另一页以修改时间为依据进行前端的显示,所以会将整个友链朋友圈从后端到前端(爬虫、api、前端页面)都做相应修改。由于改动较大,预计在3.0实现(2.x版本估计也不会太多)
from hexo-circle-of-friends.
@2X-ercha 那这样还是不错的,可以说是很符合预期了,期待3.0版本,辛苦各位大大了。
from hexo-circle-of-friends.
忘记回复了,一个月前的3.0版本已经做完了这个功能。不过需要把除数据库以外的其他部署重新部署一遍,具体可看说明书
from hexo-circle-of-friends.
Related Issues (20)
- 服务器部署,友联不是我的
- json方式是较为通用的方式; HOT 1
- 【后端报错】{"detail":"Not Found"} 404 HOT 3
- GitHub+sqlite 部署后,Actions工作流运行时间非常长或者报错
- vercel 无法访问,能否考虑添加其他
- https://www.xiaoyaomeow.cn/fcircle/
- https://blog.xiangming.site/links
- 有些旧文章总是会被识别成新文章
- 关于部署后,文章link的链接和实际文章不一致
- 想知道,能否在列表显示摘要?
- JSON格式看起来没问题,但是解析失败
- start error错误 已经看过常见问题 HOT 2
- 无法写入MongoDB数据库 HOT 1
- 极简模式下遇到 {"message": "start error"} 问题 HOT 4
- 在前端控制面板点击登陆 输入密码显示登陆失败
- 希望 json 友链能支持使用 feed 完整 url 来爬取文章 HOT 1
- 极简模式在获取 issue 友链的时候出现 429 错误 HOT 1
- 爬取友联头像与作者错误
- docker+mysql部署,友链不能更改为自己的 HOT 3
- Vercel 部署错误 HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hexo-circle-of-friends.