mirror of
https://github.com/DIYgod/RSSHub.git
synced 2026-09-21 04:38:15 +08:00
* feat(route): add 吉首大学相关通知公告 * feat(route): add 吉首大学计算机科学与工程学院、吉首大学数统学院、吉首大学主站、创新中心通知公告、教务处教务动态、教务通知 * fix: 修复文档问题 * feat(route): add 吉首大学相关通知公告 * fea(route): add 吉首大学计算机科学与工程学院、吉首大学数统学院、吉首大学主站、创新中心通知公告、教务处教务动态、教务通知 * feat(route): add 吉首大学相关通知公告 * feat(route): add 吉首大学计算机科学与工程学院、吉首大学数统学院、吉首大学主站、创新中心通知公告、教务处教务动态、教务通知 * feat(route): add 吉首大学相关通知公告 * fea(route): add 吉首大学计算机科学与工程学院、吉首大学数统学院、吉首大学主站、创新中心通知公告、教务处教务动态、教务通知 * feat(route): add 吉首大学相关通知公告 * fea(route): add 吉首大学计算机科学与工程学院、吉首大学数统学院、吉首大学主站、创新中心通知公告、教务处教务动态、教务通知 * Update lib/v2/jsu/cxzx.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/jsu/radar.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/jsu/utils/index.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/jsu/radar.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/jsu/radar.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/jsu/radar.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/jsu/radar.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * feat(route): add 吉首大学相关通知公告 * fea(route): add 吉首大学计算机科学与工程学院、吉首大学数统学院、吉首大学主站、创新中心通知公告、教务处教务动态、教务通知 * fix: 修复教务处返回的标题和描述为”计算机学院“ * style: 参照其他PR中Maintainer给出的建议,对radar.js 和 maintainer.js以字典序排序。 * refactor: 将整个RSS项对象作为缓存而不是单仅正文作为缓存,同时对应的修改了正文获取工具类中的内容,去除了固定的UserAgent; * feat(route): add 吉首大学相关通知公告 * fea(route): add 吉首大学计算机科学与工程学院、吉首大学数统学院、吉首大学主站、创新中心通知公告、教务处教务动态、教务通知 * fix: 修复教务处返回的标题和描述为”计算机学院“ * style: 参照其他PR中Maintainer给出的建议,对radar.js 和 maintainer.js以字典序排序。 * refactor: 将整个RSS项对象作为缓存而不是单仅正文作为缓存,同时对应的修改了正文获取工具类中的内容,去除了固定的UserAgent; * Update website/docs/routes/university.mdx Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update website/docs/routes/university.mdx Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/jsu/math.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/jsu/universityindex.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * feat(route): add 吉首大学相关通知公告 * fea(route): add 吉首大学计算机科学与工程学院、吉首大学数统学院、吉首大学主站、创新中心通知公告、教务处教务动态、教务通知 * fix: 修复教务处返回的标题和描述为”计算机学院“ * style: 参照其他PR中Maintainer给出的建议,对radar.js 和 maintainer.js以字典序排序。 * refactor: 将整个RSS项对象作为缓存而不是单仅正文作为缓存,同时对应的修改了正文获取工具类中的内容,去除了固定的UserAgent; * Update lib/v2/jsu/rjxy.js * Update lib/v2/jsu/math.js * Update lib/v2/jsu/jwc.js --------- Co-authored-by: WenjiaChen <i@wenjiachen.cn>
53 lines
1.8 KiB
JavaScript
53 lines
1.8 KiB
JavaScript
const got = require('@/utils/got'); // 自订的 got
|
|
const cheerio = require('cheerio'); // 可以使用类似 jQuery 的 API HTML 解析器
|
|
|
|
/**
|
|
* 获取页面内容
|
|
* @param selector 正文CSS选择器
|
|
* @param pageUrl 页面URL
|
|
* @returns {Promise<string|string>} 页面内容,为符合RSS规范的HTML
|
|
*/
|
|
async function getPageItem(selector, pageUrl) {
|
|
const response = await got({
|
|
method: 'get',
|
|
url: pageUrl,
|
|
https: { rejectUnauthorized: false },
|
|
});
|
|
const $ = cheerio.load(response.data);
|
|
const page = $(selector);
|
|
return page ? page.html() : '无法获取内容';
|
|
}
|
|
|
|
/**
|
|
* 获取页面内容、标题、日期
|
|
* @param selector 正文CSS选择器
|
|
* @param pageUrl 页面URL
|
|
* @param titleSelector 标题CSS选择器
|
|
* @param dateSelector 日期CSS选择器
|
|
* @param dateHander 日期处理函数,在CMS系统中会以“日期:点击数”等特殊格式显示日期,需要处理切分出日期
|
|
* @returns {Promise<{date, pageInfo: string, title: (*|jQuery|string)}|{date: string, pageInfo: string, title: string}>} 页面内容、标题、日期
|
|
*/
|
|
async function getPageDetails(selector, pageUrl, titleSelector, dateSelector, dateHander = (date) => date) {
|
|
const response = await got({
|
|
method: 'get',
|
|
url: pageUrl,
|
|
https: { rejectUnauthorized: false },
|
|
});
|
|
const $ = cheerio.load(response.data);
|
|
const page = $(selector);
|
|
const date = dateHander($(dateSelector).text());
|
|
const title = $(titleSelector).text();
|
|
return page
|
|
? { pageInfo: page.html(), date, title }
|
|
: {
|
|
pageInfo: '无法获取内容',
|
|
date: '1970-1-1',
|
|
title: '无法获取标题',
|
|
};
|
|
}
|
|
|
|
module.exports = {
|
|
getPageItem,
|
|
getPageItemAndDate: getPageDetails,
|
|
};
|