diff --git a/docs/university.md b/docs/university.md
index f57597a17c..cf22477041 100644
--- a/docs/university.md
+++ b/docs/university.md
@@ -1189,6 +1189,18 @@ https://rsshub.app/**nuist**/`bulletin` 或 https://rsshub.app/**nuist**/`bullet
+## 中国海洋大学
+
+### 信息科学与工程学院
+
+
+
+| 学院要闻 | 学院公告 | 学院活动 |
+| -------- | -------- | -------- |
+| 0 | 1 | 2 |
+
+
+
## 中国科学院
### 上海微系统与信息技术研究所学术活动
diff --git a/lib/router.js b/lib/router.js
index 769396c8d5..eeb8a1c9f7 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -695,6 +695,9 @@ router.get('/sdu/cmse/:type?', require('./routes/universities/sdu/cmse'));
router.get('/sdu/mech/:type?', require('./routes/universities/sdu/mech'));
router.get('/sdu/epe/:type?', require('./routes/universities/sdu/epe'));
+// 中国海洋大学
+router.get('/ouc/it/:type?', require('./routes/universities/ouc/it'));
+
// 大连大学
router.get('/dlu/jiaowu/news', require('./routes/universities/dlu/jiaowu/news'));
diff --git a/lib/routes/universities/ouc/it.js b/lib/routes/universities/ouc/it.js
new file mode 100644
index 0000000000..fc28f4a610
--- /dev/null
+++ b/lib/routes/universities/ouc/it.js
@@ -0,0 +1,54 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+const url = require('url');
+
+const host = 'https://it.ouc.edu.cn/';
+const typelist = ['学院要闻', '学院公告', '学术活动'];
+const urlList = ['xyyw/list.psp', 'xygg/list.psp', 'xshd/list.psp'];
+
+module.exports = async (ctx) => {
+ const type = parseInt(ctx.params.type) || 0;
+ const link = url.resolve(host, urlList[type]);
+ const response = await got.get(link);
+ const $ = cheerio.load(response.data);
+
+ const dateDict = {};
+ const list = $('#wp_news_w33')
+ .find('li')
+ .slice(0, 9)
+ .map((i, e) => {
+ const divs = $(e).children();
+ const tlink = host + divs.find('a')[0].attribs.href.substring(1);
+ dateDict[tlink] = new Date($($(divs.children()[0]).find('p')[0]).text()).toUTCString();
+ return tlink;
+ })
+ .get();
+ const out = await Promise.all(
+ list.map(async (itemUrl) => {
+ const cache = await ctx.cache.get(itemUrl);
+ if (cache) {
+ return Promise.resolve(JSON.parse(cache));
+ }
+ const response = await got.get(itemUrl);
+ const $ = cheerio.load(response.data);
+
+ const single = {
+ title: $('.content-tittle')
+ .text()
+ .trim(),
+ author: '中国海洋大学信息科学与工程学院',
+ description: $('.wp_articlecontent').html(),
+ pubDate: dateDict[itemUrl],
+ link: itemUrl,
+ };
+ ctx.cache.set(itemUrl, JSON.stringify(single));
+ return Promise.resolve(single);
+ })
+ );
+
+ ctx.state.data = {
+ title: `中国海洋大学信息科学与工程学院${typelist[type]}`,
+ link,
+ item: out,
+ };
+};