diff --git a/lib/v2/pku/cls/announcement.js b/lib/v2/pku/cls/announcement.js
new file mode 100644
index 000000000..3476b9d9b
--- /dev/null
+++ b/lib/v2/pku/cls/announcement.js
@@ -0,0 +1,42 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+const { parseDate } = require('@/utils/parse-date');
+
+const homeUrl = 'https://bio.pku.edu.cn/homes/Index/news/21/21.html';
+
+const baseUrl = 'https://bio.pku.edu.cn';
+
+module.exports = async (ctx) => {
+ const response = await got(homeUrl);
+
+ const $ = cheerio.load(response.data);
+
+ const list = $('div.normal_list>ul a')
+ .toArray()
+ .map((item) => {
+ item = $(item);
+ return {
+ title: $(item).find('p').text().trim(),
+ pubDate: parseDate($(item).find('span.date').text()),
+ link: baseUrl + $(item).attr('href'),
+ };
+ });
+
+ const items = await Promise.all(
+ list.map((item) =>
+ ctx.cache.tryGet(item.link, async () => {
+ const { data: response } = await got(item.link);
+ const $ = cheerio.load(response);
+
+ item.description = $('div.page div.common_width div.col-md-9').first().html();
+ return item;
+ })
+ )
+ );
+
+ ctx.state.data = {
+ title: '北京大学生命科学学院通知公告',
+ link: homeUrl,
+ item: items,
+ };
+};
diff --git a/lib/v2/pku/maintainer.js b/lib/v2/pku/maintainer.js
index 5a00d657a..da84e0369 100644
--- a/lib/v2/pku/maintainer.js
+++ b/lib/v2/pku/maintainer.js
@@ -1,6 +1,7 @@
module.exports = {
'/admission/sszs': ['pkuyjs'],
'/bbs/hot': ['wooddance'],
+ '/cls/announcement': ['william-swl'],
'/cls/lecture': ['TPOB'],
'/eecs/:type?': ['Ir1d'],
'/hr/:category?': ['nczitzk'],
diff --git a/lib/v2/pku/radar.js b/lib/v2/pku/radar.js
index 72fe004e9..084739556 100644
--- a/lib/v2/pku/radar.js
+++ b/lib/v2/pku/radar.js
@@ -24,6 +24,12 @@ module.exports = {
source: ['/homes/Index/news_jz/7/7.html', '/'],
target: '/pku/cls/lecture',
},
+ {
+ title: '生命科学学院通知公告',
+ docs: 'https://docs.rsshub.app/routes/university#bei-jing-da-xue',
+ source: ['/homes/Index/news/21/21.html', '/'],
+ target: '/pku/cls/announcement',
+ },
],
eecs: [
{
diff --git a/lib/v2/pku/router.js b/lib/v2/pku/router.js
index e7a39bb56..279b4c6e5 100644
--- a/lib/v2/pku/router.js
+++ b/lib/v2/pku/router.js
@@ -1,6 +1,7 @@
module.exports = function (router) {
router.get('/admission/sszs', require('./pkuyjs'));
router.get('/bbs/hot', require('./bbs/hot'));
+ router.get('/cls/announcement', require('./cls/announcement'));
router.get('/cls/lecture', require('./cls/lecture'));
router.get('/eecs/:type?', require('./eecs'));
router.get('/hr/:category?', require('./hr'));
diff --git a/website/docs/routes/university.md b/website/docs/routes/university.md
index d8d7fb423..cc0f22a74 100644
--- a/website/docs/routes/university.md
+++ b/website/docs/routes/university.md
@@ -299,6 +299,10 @@ Note:[Source website](https://ece.umass.edu/seminar) may be empty when there's
+### 生命科学学院通知公告 {#bei-jing-da-xue-sheng-ming-ke-xue-xue-yuan-tong-zhi-gong-gao}
+
+
+
### 北大未名 BBS 全站十大 {#bei-jing-da-xue-bei-da-wei-ming-bbs-quan-zhan-shi-da}