diff --git a/lib/routes/universities/ahut/cstzgg.js b/lib/routes/universities/ahut/cstzgg.js index 79f1d2dff..c3177bb20 100644 --- a/lib/routes/universities/ahut/cstzgg.js +++ b/lib/routes/universities/ahut/cstzgg.js @@ -1,58 +1,39 @@ const got = require('@/utils/got'); const cheerio = require('cheerio'); +const url = require('url'); module.exports = async (ctx) => { - const url = `http://jsjxy.ahut.edu.cn/list.jsp?urltype=tree.TreeTempUrl&wbtreeid=1887`; - const response = await got({ - method: 'get', - url: url, - }); + const response = await got.get('http://jsjxy.ahut.edu.cn/index/tzgg.htm'); const $ = cheerio.load(response.data); - $('.clickstyle1022').remove(); - $('td[width = "1%"]').remove(); - $('tr[height = "1"]').remove(); - $('td[colspan="3"]').remove(); - $('.leaderfont47822').remove(); - // ## 获取列表 - const list = $('.winstyle47822 > tbody > tr').get(); - // ## 定义输出的item + + // 获取列表 + const list = $('a.c259382') + .map((index, ele) => ({ + title: $(ele).attr('title'), + link: url.resolve('http://jsjxy.ahut.edu.cn/', $(ele).attr('href')), + })) + .get(); + + // 定义输出的item const out = await Promise.all( - // ### 遍历列表,筛选出自己想要的内容 + // 遍历列表,筛选出自己想要的内容 list.map(async (item) => { - const itemSingle = cheerio.load(item); - const title = itemSingle.text().replace(/^[\s]+|[\s]+$/g, ''); - const re = /]*href=['"]([^"]*)['"][^>]*>/g; - let singleUrl = ''; - if (re.exec(itemSingle.html()) !== null) { - singleUrl = RegExp.$1; - } - if (singleUrl.search('http') === -1) { - singleUrl = 'http://jsjxy.ahut.edu.cn' + singleUrl; - } - const cache = await ctx.cache.get(singleUrl); // ### 得到全局中的缓存信息 - // ### 判断缓存是否存在,如果存在即跳过此次获取的信息 + const cache = await ctx.cache.get(item.link); // 得到全局中的缓存信息 + // 判断缓存是否存在,如果存在即跳过此次获取的信息 if (cache) { return Promise.resolve(JSON.parse(cache)); } // 获取详情页面的介绍 - const detail_response = await got({ - method: 'get', - url: singleUrl, - }); + const detail_response = await got.get(item.link); const $ = cheerio.load(detail_response.data); - const detail_content = $('.contentstyle47853 > div').html(); - // ### 设置 RSS feed item - const single = { - title: title.replace(/(^\s*)|(\s*$)/g, ''), - link: singleUrl, - // author: author, - description: detail_content, - // pubDate: updateDate, - }; - // // ### 设置缓存 - ctx.cache.set(singleUrl, JSON.stringify(single)); - return Promise.resolve(single); - // } + + // 设置 RSS feed item + item.description = $('.contentstyle47853 > div').html(); + item.pubDate = new Date($('.timestyle47853').text().trim()); + + // 设置缓存 + ctx.cache.set(item.link, JSON.stringify(item)); + return Promise.resolve(item); }) ); ctx.state.data = { diff --git a/lib/routes/universities/ahut/jwc.js b/lib/routes/universities/ahut/jwc.js index 77e55deb6..957ff3f93 100644 --- a/lib/routes/universities/ahut/jwc.js +++ b/lib/routes/universities/ahut/jwc.js @@ -1,56 +1,37 @@ const got = require('@/utils/got'); const cheerio = require('cheerio'); +const url = require('url'); module.exports = async (ctx) => { - const url = `http://jwc.ahut.edu.cn/list.jsp?urltype=tree.TreeTempUrl&wbtreeid=1082`; - const response = await got({ - method: 'get', - url: url, - }); + const response = await got.get('http://jwc.ahut.edu.cn/list.jsp?urltype=tree.TreeTempUrl&wbtreeid=1082'); const $ = cheerio.load(response.data); - $('tr[height="1"]').remove(); - $('td[width="1%"]').remove(); - $('td[colspan="3"]').remove(); - // ## 获取列表 - const list = $('.winstyle44456 > tbody > tr >td').get(); - // ## 定义输出的item + + // 获取列表 + const list = $('.winstyle44566 tr') + .map((index, ele) => ({ + title: $('a', ele).attr('title'), + link: url.resolve('http://jwc.ahut.edu.cn/', $('a', ele).attr('href')), + })) + .get(); + + // 定义输出的item const out = await Promise.all( - // ### 遍历列表,筛选出自己想要的内容 + // 遍历列表,筛选出自己想要的内容 list.map(async (item) => { - const itemSingle = cheerio.load(item); - const title = itemSingle.text(); - const re = /]*href=['"]([^"]*)['"][^>]*>/g; - let singleUrl = ''; - if (re.exec(itemSingle.html()) !== null) { - singleUrl = RegExp.$1; - } - if (singleUrl.search('http') === -1) { - singleUrl = 'http://jwc.ahut.edu.cn' + singleUrl; - } - const cache = await ctx.cache.get(singleUrl); // ### 得到全局中的缓存信息 - // ### 判断缓存是否存在,如果存在即跳过此次获取的信息 + const cache = await ctx.cache.get(item.link); // 得到全局中的缓存信息 + // 判断缓存是否存在,如果存在即跳过此次获取的信息 if (cache) { return Promise.resolve(JSON.parse(cache)); } // 获取详情页面的介绍 - const detail_response = await got({ - method: 'get', - url: singleUrl, - }); + const detail_response = await got.get(item.link); const $ = cheerio.load(detail_response.data); - const detail_content = $('.winstyle44457 > tbody').html(); - // ### 设置 RSS feed item - const single = { - title: title, - link: singleUrl, - // author: author, - description: detail_content, - // pubDate: updateDate, - }; - // // ### 设置缓存 - ctx.cache.set(singleUrl, JSON.stringify(single)); - return Promise.resolve(single); - // } + // 设置 RSS feed item + item.description = $('.winstyle44457 > tbody').html(); + item.pubDate = new Date($('.timestyle44457').text().trim()); + // 设置缓存 + ctx.cache.set(item.link, JSON.stringify(item)); + return Promise.resolve(item); }) ); ctx.state.data = { diff --git a/lib/routes/universities/ahut/news.js b/lib/routes/universities/ahut/news.js index 83aa8e310..67ae500da 100644 --- a/lib/routes/universities/ahut/news.js +++ b/lib/routes/universities/ahut/news.js @@ -1,58 +1,38 @@ const got = require('@/utils/got'); const cheerio = require('cheerio'); +const url = require('url'); module.exports = async (ctx) => { - const url = `http://news.ahut.edu.cn/list.jsp?urltype=tree.TreeTempUrl&wbtreeid=1002`; - const response = await got({ - method: 'get', - url: url, - }); + const response = await got.get('http://news.ahut.edu.cn/list.jsp?urltype=tree.TreeTempUrl&wbtreeid=1002'); const $ = cheerio.load(response.data); - $('tr[height="26"]').slice(20); - $('td[width="1%"]').remove(); - $('.clickstyle1022').remove(); - $('td[colspan="3"]').remove(); - $('.leaderfont1022').remove(); - // ## 获取列表 - const list = $('.winstyle1022 > tbody > tr > td').get(); - // ## 定义输出的item + + // 获取列表 + const list = $('.winstyle247968 a.c247968') + .map((index, ele) => ({ + title: $(ele).attr('title'), + link: url.resolve('http://news.ahut.edu.cn/', $(ele).attr('href')), + })) + .get(); + // 定义输出的item const out = await Promise.all( - // ### 遍历列表,筛选出自己想要的内容 + // 遍历列表,筛选出自己想要的内容 list.map(async (item) => { - const itemSingle = cheerio.load(item); - const title = itemSingle.text().trim(); - const re = /]*href=['"]([^"]*)['"][^>]*>/g; - let singleUrl = ''; - if (re.exec(itemSingle.html()) !== null) { - singleUrl = RegExp.$1; - } - if (singleUrl.search('http') === -1) { - singleUrl = 'http://news.ahut.edu.cn' + singleUrl; - } - const cache = await ctx.cache.get(singleUrl); // ### 得到全局中的缓存信息 - // ### 判断缓存是否存在,如果存在即跳过此次获取的信息 + const cache = await ctx.cache.get(item.link); // 得到全局中的缓存信息 + // 判断缓存是否存在,如果存在即跳过此次获取的信息 if (cache) { return Promise.resolve(JSON.parse(cache)); } // 获取详情页面的介绍 - const detail_response = await got({ - method: 'get', - url: singleUrl, - }); + const detail_response = await got.get(item.link); const $ = cheerio.load(detail_response.data); - const detail_content = $('.winstyle1023').html(); - // ### 设置 RSS feed item - const single = { - title: title, - link: singleUrl, - // author: author, - description: detail_content, - // pubDate: updateDate, - }; - // // ### 设置缓存 - ctx.cache.set(singleUrl, JSON.stringify(single)); - return Promise.resolve(single); - // } + + // 设置 RSS feed item + item.description = $('.winstyle1023').html(); + item.pubDate = new Date($('.timestyle1023').text().trim()); + + // 设置缓存 + ctx.cache.set(item.link, JSON.stringify(item)); + return Promise.resolve(item); }) ); ctx.state.data = {