Files
RSSHub/lib/routes/tencent/wechat/wasi.js
dxmpalb 59447e4b89 add 懂球帝头条&专题新闻 optimize 瓦斯公众号历史文章 (#1612)
详细解释一下增加瓦斯公众号历史文章的原因:
* 目前的瓦斯公众号抓取(阅读器为Inoreader为例):想要抓取某微信公众号的“日报”栏目时,利用瓦斯源,加上参数过滤,理想状态下是可以抓取到想要的内容的;但是,Inoreader刚添加订阅源时,很大可能订阅源是空的(即该公众号上一次所发布的文章中不含“日报”关键字),此时阅读器会把抓取间隔设置为比较大的值(假设为6小时)。而6小时内,公众号发布了两次内容,第一次含“日报”,第二次不含“日报”,这样的话,阅读器再次抓取时,订阅源仍然为空,抓取间隔继续加大……最终导致根本抓取不到想要的内容。(叙述可能有些混乱,实际测试中确实如此,测试使用之一是“央视新闻”公众号的“早啊!新闻来了”栏目,几天(不含周末)下来,并未抓到一篇文章,其他例子中情况类似)
* 抓取历史文章的情况下:条数限制为20,通常情况下很少公众号一天能发布超过20篇文章,因此首次理论上能抓到几篇想要的文章(“日报”等),然后接下来阅读器抓取频率并不会降低(最终会稳定在栏目发布间隔这个时间)。实际测试中确实有比较好的效果,而且不加参数过滤的话也完全不受影响。
2019-02-25 11:37:20 +08:00

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,
})),
};
};