feat(route): add 浙江省公务员考试录用网 (#13526)
This commit is contained in:
parent
c05524bd87
commit
bb820b029a
|
|
@ -87,4 +87,5 @@ module.exports = {
|
|||
'/wuhan/sy/whyw': ['nczitzk'],
|
||||
'/xinyi/:path+': ['ShuiHuo'],
|
||||
'/xuzhou/hrss/:category?': ['nczitzk'],
|
||||
'/zhejiang/gwy/:category?/:column?': ['nczitzk'],
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1168,4 +1168,15 @@ module.exports = {
|
|||
},
|
||||
],
|
||||
},
|
||||
'zjks.gov.cn': {
|
||||
_name: '浙江省公务员考试录用网',
|
||||
'.': [
|
||||
{
|
||||
title: '地市专栏',
|
||||
docs: 'https://docs.rsshub.app/routes/government#zhe-jiang-sheng-gong-wu-yuan-kao-shi-lu-yong-wang',
|
||||
source: ['/zjgwy/website/init.htm', '/zjgwy/website/queryDetail.htm', '/zjgwy/website/queryMore.htm'],
|
||||
target: '/gov/zhejiang/gwy',
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -78,4 +78,5 @@ module.exports = function (router) {
|
|||
router.get('/wuhan/sy/whyw', require('./wuhan/whyw'));
|
||||
router.get(/xinyi(\/[\w/-]+)?/, require('./xinyi/xinyi'));
|
||||
router.get('/xuzhou/hrss/:category?', require('./xuzhou/hrss'));
|
||||
router.get('/zhejiang/gwy/:category?/:column?', require('./zhejiang/gwy'));
|
||||
};
|
||||
|
|
|
|||
|
|
@ -0,0 +1,84 @@
|
|||
const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
const { parseDate } = require('@/utils/parse-date');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const { category, column } = ctx.params;
|
||||
const limit = ctx.query.limit ? parseInt(ctx.query.limit, 10) : 50;
|
||||
|
||||
const rootUrl = 'http://gwy.zjks.gov.cn';
|
||||
const currentUrl = new URL(`zjgwy/website/${category ? 'queryMore' : 'init'}.htm`, rootUrl).href;
|
||||
const detailUrl = new URL('zjgwy/website/queryDetail.htm', rootUrl).href;
|
||||
|
||||
const { data: response } = await got.post(currentUrl, {
|
||||
form: {
|
||||
dsdm: column,
|
||||
mkxh: category,
|
||||
oldornew: 'new',
|
||||
},
|
||||
});
|
||||
|
||||
const $ = cheerio.load(response);
|
||||
|
||||
let items = $('a[onclick^="queryDetail"]')
|
||||
.slice(0, limit)
|
||||
.toArray()
|
||||
.map((item) => {
|
||||
item = $(item);
|
||||
|
||||
const matches = item.prop('onclick').match(/queryDetail\('?(\d+)'?, '?(\d+)'?\);/);
|
||||
|
||||
return {
|
||||
title: item.text(),
|
||||
link: detailUrl,
|
||||
category: matches[1],
|
||||
guid: `zjks-${matches[1]}-${matches[2]}`,
|
||||
pubDate: parseDate(item.parent().next().text()),
|
||||
tzid: matches[2],
|
||||
};
|
||||
});
|
||||
|
||||
items = await Promise.all(
|
||||
items.map((item) =>
|
||||
ctx.cache.tryGet(item.guid, async () => {
|
||||
const { data: detailResponse } = await got.post(detailUrl, {
|
||||
form: {
|
||||
mkxh: item.category,
|
||||
oldornew: 'new',
|
||||
dsdm: column,
|
||||
tzid: item.tzid,
|
||||
},
|
||||
});
|
||||
|
||||
const content = cheerio.load(detailResponse);
|
||||
|
||||
item.description = content('div.ibox-content').last().html();
|
||||
item.category = [content('div.ibox-title').last().find('h5').first().text()];
|
||||
|
||||
const files = content('a.ke-insertfile');
|
||||
|
||||
if (files.length > 0) {
|
||||
const file = files.first();
|
||||
item.enclosure_url = file.prop('href');
|
||||
}
|
||||
|
||||
delete item.tzid;
|
||||
|
||||
return item;
|
||||
})
|
||||
)
|
||||
);
|
||||
|
||||
const columnName = $('button.btn-success').last().text();
|
||||
const categoryName = $('table').parent().prev().find('h5').text();
|
||||
|
||||
ctx.state.data = {
|
||||
item: items,
|
||||
title: `${$('title').text()} - ${columnName}${categoryName}`,
|
||||
link: currentUrl,
|
||||
description: $('div.title-font2').text(),
|
||||
subtitle: `${columnName}${categoryName}`,
|
||||
author: $('div.title-font').text(),
|
||||
allowEmpty: true,
|
||||
};
|
||||
};
|
||||
|
|
@ -1144,6 +1144,38 @@ Language
|
|||
|
||||
</Route>
|
||||
|
||||
## 浙江省公务员考试录用网 {#zhe-jiang-sheng-gong-wu-yuan-kao-shi-lu-yong-wang}
|
||||
|
||||
### 通知 {#zhe-jiang-sheng-gong-wu-yuan-kao-shi-lu-yong-wang-tong-zhi}
|
||||
|
||||
<Route author="nczitzk" example="/gov/zhejiang/gwy/1" path="/gov/zhejiang/gwy/:category?/:column?" paramsDesc={['分类,见下表,默认为全部', '地市专栏,见下表,默认为全部']}>
|
||||
|
||||
| 分类 | id |
|
||||
| ------------ | --- |
|
||||
| 重要通知 | 1 |
|
||||
| 招考公告 | 2 |
|
||||
| 招考政策 | 3 |
|
||||
| 面试体检考察 | 4 |
|
||||
| 录用公示专栏 | 5 |
|
||||
|
||||
| 地市 | id |
|
||||
| ------------ | ----- |
|
||||
| 浙江省 | 133 |
|
||||
| 浙江省杭州市 | 13301 |
|
||||
| 浙江省宁波市 | 13302 |
|
||||
| 浙江省温州市 | 13303 |
|
||||
| 浙江省嘉兴市 | 13304 |
|
||||
| 浙江省湖州市 | 13305 |
|
||||
| 浙江省绍兴市 | 13306 |
|
||||
| 浙江省金华市 | 13307 |
|
||||
| 浙江省衢州市 | 13308 |
|
||||
| 浙江省舟山市 | 13309 |
|
||||
| 浙江省台州市 | 13310 |
|
||||
| 浙江省丽水市 | 13311 |
|
||||
| 省级单位 | 13317 |
|
||||
|
||||
</Route>
|
||||
|
||||
## 浙江省土地使用权网上交易系统 {#zhe-jiang-sheng-tu-di-shi-yong-quan-wang-shang-jiao-yi-xi-tong}
|
||||
|
||||
### 公告信息 {#zhe-jiang-sheng-tu-di-shi-yong-quan-wang-shang-jiao-yi-xi-tong-gong-gao-xin-xi}
|
||||
|
|
|
|||
Loading…
Reference in New Issue