From 7bd758fbeba2e7a4e70ae94d0ccf036328c6d882 Mon Sep 17 00:00:00 2001 From: Halcao Date: Sun, 19 Apr 2020 18:58:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20add=20=E6=B8=85=E5=8D=8E=E5=A4=A7?= =?UTF-8?q?=E5=AD=A6=E6=8B=9B=E8=81=98=E4=BF=A1=E6=81=AF=20(#4400)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/university.md | 4 +++ lib/router.js | 1 + lib/routes/universities/thu/career.js | 40 +++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 lib/routes/universities/thu/career.js diff --git a/docs/university.md b/docs/university.md index 0dba433c1..2fdfc0bd8 100644 --- a/docs/university.md +++ b/docs/university.md @@ -986,6 +986,10 @@ https://rsshub.app/**nuist**/`bulletin` 或 https://rsshub.app/**nuist**/`bullet +### 清华大学招聘信息 + + + ## 山东大学 ### 软件学院通知 diff --git a/lib/router.js b/lib/router.js index 7dcc3edf7..1a597aa1a 100644 --- a/lib/router.js +++ b/lib/router.js @@ -591,6 +591,7 @@ router.get('/lit/xwzx/:name?', require('./routes/universities/lit/xwzx')); router.get('/lit/tw/:name?', require('./routes/universities/lit/tw')); // 清华大学 +router.get('/thu/career', require('./routes/universities/thu/career')); router.get('/thu/:type', require('./routes/universities/thu/index')); // 北京大学 diff --git a/lib/routes/universities/thu/career.js b/lib/routes/universities/thu/career.js new file mode 100644 index 000000000..3b3c6d06a --- /dev/null +++ b/lib/routes/universities/thu/career.js @@ -0,0 +1,40 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); +const resolve_url = require('url').resolve; + +const base_url = 'https://career.cic.tsinghua.edu.cn/'; + +module.exports = async (ctx) => { + const page = 1; + + const route = 'xsglxt/f/jyxt/anony/xxfb'; + const response = await got({ + method: 'post', + url: base_url + route, + body: `pgno=${page}`, + headers: { + accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', + 'accept-language': 'zh-CN,zh;q=0.9', + 'cache-control': 'max-age=0', + 'content-type': 'application/x-www-form-urlencoded', + 'proxy-connection': 'keep-alive', + 'upgrade-insecure-requests': '1', + }, + }); + + const $ = cheerio.load(response.data); + + const title = '招聘信息'; + ctx.state.data = { + title: '清华大学 - ' + title, + link: base_url, + description: '清华大学学生职业发展指导中心 - ' + title, + item: $('#ts_div .list li') + .map((_, elem) => ({ + link: resolve_url(base_url, $('a', elem).attr('ahref')), + title: $('a', elem).text(), + pubDate: new Date($('span', elem).text()).toUTCString(), + })) + .get(), + }; +};