diff --git a/docs/university.md b/docs/university.md
index 37c3681986..3bb74d9dcd 100644
--- a/docs/university.md
+++ b/docs/university.md
@@ -3291,3 +3291,15 @@ jsjxy.hbut.edu.cn 证书链不全,自建 RSSHub 可设置环境变量 NODE_TLS
### 数据科学与计算机学院动态
+
+## 华北电力大学
+
+### 北京校区研究生院
+
+
+
+| 类型 | 硕士招生信息 | 通知公告 |
+| -- | ------ | ---- |
+| 参数 | zsxx | tzgg |
+
+
diff --git a/lib/v2/ncepu/maintainer.js b/lib/v2/ncepu/maintainer.js
new file mode 100644
index 0000000000..019359cbf2
--- /dev/null
+++ b/lib/v2/ncepu/maintainer.js
@@ -0,0 +1,3 @@
+module.exports = {
+ '/master/:type': ['nilleo'],
+};
diff --git a/lib/v2/ncepu/master/masterinfo.js b/lib/v2/ncepu/master/masterinfo.js
new file mode 100644
index 0000000000..0b6b8a2404
--- /dev/null
+++ b/lib/v2/ncepu/master/masterinfo.js
@@ -0,0 +1,70 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+const timezone = require('@/utils/timezone');
+const { parseDate } = require('@/utils/parse-date');
+
+const title_map = {
+ tzgg: '通知公告',
+ zsxx: '硕士招生信息',
+};
+const description_map = {
+ tzgg: '通知公告',
+ zsxx: '硕士招生信息',
+};
+const url_map = {
+ tzgg: 'tzgg',
+ zsxx: 'zsxx/sszsxx',
+};
+
+module.exports = async (ctx) => {
+ const type = ctx.params.type;
+ const response = await got(`https://yjsy.ncepu.edu.cn/${url_map[type]}/index.htm`);
+ const data = response.data; // 获取页面 html 数据
+
+ const $ = cheerio.load(data);
+ const list = $('.articleList ul li')
+ .map((_, item) => {
+ item = $(item);
+ // 单篇文章块的信息,其中文字部分是标题,属性是文章链接
+ const a = item.find('a');
+ // 发表日期
+ const pubDate = timezone(parseDate(item.find('span').text().replace('[', '').replace(']', '')), +8);
+ // 相对地址转化为绝对地址
+ const url_head = `https://yjsy.ncepu.edu.cn/${url_map[type]}/`;
+ const url_part = a.attr('href');
+ const url = url_head + url_part;
+ // 返回格式化数据
+ return {
+ title: a.attr('title'),
+ link: url,
+ pubDate,
+ };
+ })
+ .get();
+
+ const items = await Promise.all(
+ list.map(async (item) => {
+ const itemData = await ctx.cache.tryGet(item.link, async () => (await got(item.link)).data);
+ const content = cheerio.load(itemData);
+
+ const articleAuthor = content('.articleAuthor').html().replace('作者: ', '');
+ const eDescription = content('.article').html();
+ const files = content('.Annex').html();
+
+ const single = {
+ title: item.title,
+ link: item.link,
+ description: articleAuthor + eDescription + files,
+ pubDate: item.pubDate,
+ };
+ return single;
+ })
+ );
+
+ ctx.state.data = {
+ title: `${title_map[type]}-华北电力大学研究生院`,
+ link: `http://yjsy.ncepu.edu.cn/${url_map[type]}`,
+ description: `华北电力大学研究生院${description_map[type]}`,
+ item: items,
+ };
+};
diff --git a/lib/v2/ncepu/radar.js b/lib/v2/ncepu/radar.js
new file mode 100644
index 0000000000..22ffbca8d9
--- /dev/null
+++ b/lib/v2/ncepu/radar.js
@@ -0,0 +1,19 @@
+module.exports = {
+ 'yjsy.ncepu.edu.cn': {
+ _name: '华北电力大学研究生院',
+ '.': [
+ {
+ title: '通知公告',
+ docs: ' https://docs.rsshub.app/university.html#hua-bei-dian-li-da-xue',
+ source: ['/tzgg/index.htm', '/'],
+ target: '/ncepu/master/tzgg',
+ },
+ {
+ title: '硕士招生信息',
+ docs: 'https://docs.rsshub.app/university.html#hua-bei-dian-li-da-xue',
+ source: ['/zsxx/sszsxx/index.htm', '/'],
+ target: '/ncepu/master/zsxx',
+ },
+ ],
+ },
+};
diff --git a/lib/v2/ncepu/router.js b/lib/v2/ncepu/router.js
new file mode 100644
index 0000000000..0c8b373df1
--- /dev/null
+++ b/lib/v2/ncepu/router.js
@@ -0,0 +1,3 @@
+module.exports = function (router) {
+ router.get('/master/:type', require('./master/masterinfo'));
+};