diff --git a/docs/new-media.md b/docs/new-media.md
index e9c19449fc..cd416236ac 100644
--- a/docs/new-media.md
+++ b/docs/new-media.md
@@ -297,20 +297,28 @@ Supported sub-sites:
-## 坂道系列官网新闻
+## 坂道系列官网资讯
-### 乃木坂 46
+### 乃木坂 46 新闻
-### 欅坂 46
+### 欅坂 46 新闻
-### 日向坂 46
+### 欅坂 46 博客
+
+
+
+### 日向坂 46 新闻
+### 日向坂 46 博客
+
+
+
## 币世界
### 快讯
diff --git a/lib/router.js b/lib/router.js
index 1ac25e8fe5..de39315362 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -1764,10 +1764,12 @@ router.get('/lkong/forum/:id/:digest?', require('./routes/lkong/forum'));
router.get('/lkong/thread/:id', require('./routes/lkong/thread'));
// router.get('/lkong/user/:id', require('./routes/lkong/user'));
-// 坂道系列官网新闻
+// 坂道系列资讯
router.get('/nogizaka46/news', require('./routes/nogizaka46/news'));
router.get('/keyakizaka46/news', require('./routes/keyakizaka46/news'));
+router.get('/keyakizaka46/blog', require('./routes/keyakizaka46/blog'));
router.get('/hinatazaka46/news', require('./routes/hinatazaka46/news'));
+router.get('/hinatazaka46/blog', require('./routes/hinatazaka46/blog'));
// 阿里云
router.get('/aliyun/database_month', require('./routes/aliyun/database_month'));
diff --git a/lib/routes/hinatazaka46/blog.js b/lib/routes/hinatazaka46/blog.js
new file mode 100644
index 0000000000..f7bde202da
--- /dev/null
+++ b/lib/routes/hinatazaka46/blog.js
@@ -0,0 +1,47 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+
+module.exports = async (ctx) => {
+ const response = await got({
+ method: 'get',
+ url: 'https://www.hinatazaka46.com/s/official/diary/member',
+ headers: {
+ Referer: 'http://www.hinatazaka46.com/',
+ },
+ });
+
+ const data = response.data;
+ const $ = cheerio.load(data);
+ const list = $('div.p-blog-top__contents ul li');
+ let itemPicUrl;
+
+ ctx.state.data = {
+ allowEmpty: true,
+ title: '日向坂46官网 博客',
+ link: 'https://www.hinatazaka46.com/s/official/diary/member',
+ item:
+ list &&
+ list
+ .map((index, item) => {
+ item = $(item);
+ itemPicUrl = `${item.find('div.c-blog__image').attr('style')}`.replace('background-image:url(', '').replace(');', '');
+ return {
+ title: item
+ .find('p.c-blog-top__title')
+ .text()
+ .trim(),
+ link: item
+ .find('a')
+ .first()
+ .attr('href'),
+ pubDate: item.find('time.c-blog-top__date').text(),
+ author: item
+ .find('div.c-blog-top__name')
+ .text()
+ .trim(),
+ description: `
`,
+ };
+ })
+ .get(),
+ };
+};
diff --git a/lib/routes/keyakizaka46/blog.js b/lib/routes/keyakizaka46/blog.js
new file mode 100644
index 0000000000..13763cd855
--- /dev/null
+++ b/lib/routes/keyakizaka46/blog.js
@@ -0,0 +1,48 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+
+module.exports = async (ctx) => {
+ const response = await got({
+ method: 'get',
+ url: 'https://www.keyakizaka46.com/s/k46o/diary/member',
+ headers: {
+ Referer: 'http://www.keyakizaka46.com/',
+ },
+ });
+
+ const data = response.data;
+ const $ = cheerio.load(data);
+ const list = $('div.box-newposts div.slider ul li');
+ let itemPicUrl;
+
+ ctx.state.data = {
+ allowEmpty: true,
+ title: '欅坂46官网 博客',
+ link: 'https://www.keyakizaka46.com/s/k46o/diary/member',
+ item:
+ list &&
+ list
+ .map((index, item) => {
+ item = $(item);
+ itemPicUrl = `${item.find('img.js-replaceImage').attr('src')}`;
+ return {
+ title: item
+ .find('p.ttl')
+ .text()
+ .trim(),
+ link: item
+ .find('a')
+ .first()
+ .attr('href'),
+ pubDate: item.find('div.box-blog time').text(),
+ author: item
+ .find('p.ttl')
+ .next()
+ .text()
+ .trim(),
+ description: `
`,
+ };
+ })
+ .get(),
+ };
+};