mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-09 23:00:48 +08:00
47 lines
1.7 KiB
JavaScript
47 lines
1.7 KiB
JavaScript
const cheerio = require('cheerio');
|
|
const got = require('@/utils/got');
|
|
|
|
module.exports = async (ctx) => {
|
|
const baseUrl = 'http://graduate.cug.edu.cn';
|
|
const reqUrl = `${baseUrl}/zhtzgg.htm`;
|
|
const res = await got(reqUrl);
|
|
const selector = 'div.mainWrap > div.main_con > div.main_conR.main_conRa > div.main_conRCb > ul > li';
|
|
const links = cheerio
|
|
.load(res.data)(selector)
|
|
.map((_, ele) => {
|
|
const $item = cheerio.load(ele);
|
|
const link = `${baseUrl}/${$item('a').attr('href')}`;
|
|
return link;
|
|
})
|
|
.get();
|
|
const item = await Promise.all(
|
|
links.map((link) =>
|
|
ctx.cache.tryGet(`cug/${link}`, async () => {
|
|
const res = await got(link);
|
|
const $ = cheerio.load(res.data);
|
|
const mainNode = $('.main_content');
|
|
const description = mainNode.find('.main_conDiv').html();
|
|
const title = mainNode.find('.main_contit h2').text();
|
|
const pubTime = mainNode
|
|
.find('.main_contit p')
|
|
.text()
|
|
.split(' ')
|
|
.find((s) => s.includes('时间'))
|
|
.replace('时间:', '');
|
|
return {
|
|
title,
|
|
description,
|
|
pubDate: new Date(pubTime).toUTCString(),
|
|
};
|
|
})
|
|
)
|
|
);
|
|
|
|
ctx.state.data = {
|
|
title: '中国地址大学(武汉)研究生院 - 综合通知公告',
|
|
description: '中国地址大学(武汉)研究生院 - 综合通知公告',
|
|
link: `${baseUrl}/zhtzgg.htm`,
|
|
item,
|
|
};
|
|
};
|