mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-07 21:47:57 +08:00
详细解释一下增加瓦斯公众号历史文章的原因: * 目前的瓦斯公众号抓取(阅读器为Inoreader为例):想要抓取某微信公众号的“日报”栏目时,利用瓦斯源,加上参数过滤,理想状态下是可以抓取到想要的内容的;但是,Inoreader刚添加订阅源时,很大可能订阅源是空的(即该公众号上一次所发布的文章中不含“日报”关键字),此时阅读器会把抓取间隔设置为比较大的值(假设为6小时)。而6小时内,公众号发布了两次内容,第一次含“日报”,第二次不含“日报”,这样的话,阅读器再次抓取时,订阅源仍然为空,抓取间隔继续加大……最终导致根本抓取不到想要的内容。(叙述可能有些混乱,实际测试中确实如此,测试使用之一是“央视新闻”公众号的“早啊!新闻来了”栏目,几天(不含周末)下来,并未抓到一篇文章,其他例子中情况类似) * 抓取历史文章的情况下:条数限制为20,通常情况下很少公众号一天能发布超过20篇文章,因此首次理论上能抓到几篇想要的文章(“日报”等),然后接下来阅读器抓取频率并不会降低(最终会稳定在栏目发布间隔这个时间)。实际测试中确实有比较好的效果,而且不加参数过滤的话也完全不受影响。
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
const axios = require('../../../utils/axios');
|
|
|
|
module.exports = async (ctx) => {
|
|
const id = ctx.params.id;
|
|
|
|
const response = await axios({
|
|
method: 'get',
|
|
url: `https://q.qnmlgb.tech/w/api/articles?_ls=&_fmt=authorSimple&_page=author&_author_id=${id}&_sub_tab=&_tab=author`,
|
|
headers: {
|
|
Referer: `https://w.qnmlgb.tech/authors/${id}/`,
|
|
},
|
|
});
|
|
const rawData = response.data.result.articles;
|
|
|
|
const data = [];
|
|
|
|
for (let i = 0; i < rawData.length; i++) {
|
|
const subArticles = rawData[i].sub_articles;
|
|
for (let j = 0; j < subArticles.length; j++) {
|
|
data.push(subArticles[j]);
|
|
}
|
|
}
|
|
|
|
ctx.state.data = {
|
|
title: `${rawData[0].author.nickname}微信公众号`,
|
|
link: `https://w.qnmlgb.tech/authors/${id}/`,
|
|
description: rawData[0].author.profile_desc,
|
|
item: data.map((item) => ({
|
|
title: item.article.title,
|
|
description: `${item.article.digest}<img referrerpolicy="no-referrer" src="${item.article.cover}">`,
|
|
pubDate: new Date(item.article.datetime * 1000).toUTCString(),
|
|
link: item.article.content_url,
|
|
})),
|
|
};
|
|
};
|