diff --git a/lib/v2/gov/maintainer.js b/lib/v2/gov/maintainer.js
index b80356ec4a7740..58a5704316287a 100644
--- a/lib/v2/gov/maintainer.js
+++ b/lib/v2/gov/maintainer.js
@@ -76,6 +76,7 @@ module.exports = {
'/shanghai/wgj/:page?': ['gideonsenku'],
'/shenzhen/hrss/szksy/:caty/:page?': ['zlasd'],
'/shenzhen/xxgk/zfxxgj/:caty': ['laoxua'],
+ '/shenzhen/zjj/xxgk/:caty': ['lonn'],
'/shenzhen/zzb/:caty/:page?': ['zlasd'],
'/sichuan/deyang/govpublicinfo/:countyName/:infoType?': ['zytomorrow'],
'/sichuan/deyang/mztoday/:infoType?': ['zytomorrow'],
diff --git a/lib/v2/gov/radar.js b/lib/v2/gov/radar.js
index fd565af45237d9..fb357bdb4e3ef0 100644
--- a/lib/v2/gov/radar.js
+++ b/lib/v2/gov/radar.js
@@ -1008,6 +1008,14 @@ module.exports = {
target: '/gov/shenzhen/hrss/szksy/:caty/:page?',
},
],
+ zjj: [
+ {
+ title: '深圳市住房和建设局',
+ docs: 'https://docs.rsshub.app/routes/government#guang-dong-sheng-ren-min-zheng-fu-shen-zhen-shi-zhu-fang-he-jian-she-ju',
+ source: ['/xxgk/:caty'],
+ target: '/gov/shenzhen/zjj/xxgk/:caty',
+ },
+ ],
zzb: [
{
title: '组工在线公告',
diff --git a/lib/v2/gov/router.js b/lib/v2/gov/router.js
index d21b76f7fd6d30..3205f67b3f8820 100644
--- a/lib/v2/gov/router.js
+++ b/lib/v2/gov/router.js
@@ -67,6 +67,7 @@ module.exports = function (router) {
router.get(/shanghai\/yjj\/([\w/-]+)?/, require('./shanghai/yjj'));
router.get('/shenzhen/hrss/szksy/:caty/:page?', require('./shenzhen/hrss/szksy/index'));
router.get('/shenzhen/xxgk/zfxxgj/:caty', require('./shenzhen/xxgk/zfxxgj'));
+ router.get('/shenzhen/zjj/xxgk/:caty', require('./shenzhen/zjj/index'));
router.get('/shenzhen/zzb/:caty/:page?', require('./shenzhen/zzb/index'));
router.get('/sichuan/deyang/govpublicinfo/:countyName/:infoType?', require('./sichuan/deyang/govpublicinfo'));
router.get('/sichuan/deyang/mztoday/:infoType?', require('./sichuan/deyang/mztoday'));
diff --git a/lib/v2/gov/shenzhen/zjj/index.js b/lib/v2/gov/shenzhen/zjj/index.js
new file mode 100644
index 00000000000000..26ffa63387a47c
--- /dev/null
+++ b/lib/v2/gov/shenzhen/zjj/index.js
@@ -0,0 +1,45 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+const { parseDate } = require('@/utils/parse-date');
+const timezone = require('@/utils/timezone');
+
+const config = {
+ tzgg: {
+ link: 'tzgg/',
+ title: '通知公告',
+ },
+};
+
+module.exports = async (ctx) => {
+ const baseUrl = 'http://zjj.sz.gov.cn/xxgk/';
+ const cfg = config[ctx.params.caty];
+ if (!cfg) {
+ throw Error('Bad category. See docs');
+ }
+
+ const currentUrl = new URL(cfg.link, baseUrl).href;
+
+ const { data: response } = await got(currentUrl);
+ const $ = cheerio.load(response);
+
+ const items = $('div.listcontent_right ul li')
+ // 使用“toArray()”方法将选择的所有 DOM 元素以数组的形式返回。
+ .toArray()
+ // 使用“map()”方法遍历数组,并从每个元素中解析需要的数据。
+ .map((item) => {
+ item = $(item);
+ const a = item.find('a').first();
+ return {
+ title: a.text(),
+ // `link` 需要一个绝对 URL,但 `a.attr('href')` 返回一个相对 URL。
+ link: a.attr('href'),
+ pubDate: timezone(parseDate(item.find('span').first().text(), 'YY-MM-DD'), 0),
+ };
+ });
+
+ ctx.state.data = {
+ title: '深圳市住房和建设局 - ' + cfg.title,
+ link: currentUrl,
+ item: items,
+ };
+};
diff --git a/website/docs/routes/government.md b/website/docs/routes/government.md
index 2e4f4cbf39b748..12c92c1bce829b 100644
--- a/website/docs/routes/government.md
+++ b/website/docs/routes/government.md
@@ -401,6 +401,16 @@ Language
+### 深圳市住房和建设局 {#guang-dong-sheng-ren-min-zheng-fu-shen-zhen-shi-zhu-fang-he-jian-she-ju}
+
+
+
+| 通知公告 |
+| :------: |
+| tzgg |
+
+
+
### 惠州市人民政府 {#guang-dong-sheng-ren-min-zheng-fu-hui-zhou-shi-ren-min-zheng-fu}
#### 政务公开