From 41a3aeeb4a0763d654c51b84d965de3d6c8768e5 Mon Sep 17 00:00:00 2001 From: tgly307 Date: Wed, 2 May 2018 22:50:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=96=B7=E5=9A=8F=E5=9B=BE?= =?UTF-8?q?=E5=8D=A6rss?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- router.js | 3 +++ routes/dapenti/tugua.js | 57 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 routes/dapenti/tugua.js diff --git a/router.js b/router.js index 8e95316657..7963fe83d3 100644 --- a/router.js +++ b/router.js @@ -71,4 +71,7 @@ router.get('/douban/movie/ustop', require('./routes/douban/ustop')); // 煎蛋 router.get('/jandan/pic', require('./routes/jandan/pic')); +// 图卦 +router.get('/dapenti/tugua', require('./routes/dapenti/tugua')); + module.exports = router; diff --git a/routes/dapenti/tugua.js b/routes/dapenti/tugua.js new file mode 100644 index 0000000000..2e56b8b1b1 --- /dev/null +++ b/routes/dapenti/tugua.js @@ -0,0 +1,57 @@ +const axios = require('axios'); +const art = require('art-template'); +const path = require('path'); +const cheerio = require('cheerio'); +const config = require('../../config'); +const iconv = require('iconv-lite'); + +module.exports = async (ctx) => { + const listRes = await axios({ + method: 'get', + url: `https://www.dapenti.com/blog/blog.asp?name=xilei&subjectid=70`, + headers: { + 'User-Agent': config.ua, + 'Referer': `https://www.dapenti.com/blog/blog.asp?name=xilei&subjectid=70`, + }, + // 喷嚏网编码为GBK,需要转码 + // 转码需要设定返回数据的格式,其可选项是arraybuffer,blob,document,json,text,stream + // 默认为json + responseType: 'arraybuffer' + }); + // 转码 + const data = iconv.decode(listRes.data, 'gb2312'); + const $ = cheerio.load(data); + // 只取最近的三个图卦,取全文rss + const list = $('li','ul').slice(0,3); + let result_item = []; + //为了避免async/await嵌套,使用for循环代替map方法 + for(let i=0;i