rsshub
Version:
Make RSS Great Again!
58 lines (43 loc) • 1.5 kB
JavaScript
const got = require('@/utils/got');
const cheerio = require('cheerio');
// 加载详情页
async function load(link) {
const response = await got.get(link);
const $ = cheerio.load(response.data);
// 提取标题
const title = $('#mainrow > div:nth-child(2) > div.col-md-9 > div.row > div.col-md-12').html();
// 提取图片
const img = $('.x-m-poster').html();
// 提取资料
$('#viewfilm').find('img').remove();
const info = $('#viewfilm').html();
// 提取简介
const intro = $('#des-ex').html() || $('#des-full').html();
// 合并为描述
const description = title + img + info + intro;
return { description };
}
const ProcessFeed = (list, caches) =>
Promise.all(
list.map(async (item) => {
const $ = cheerio.load(item);
// 获取链接
const $title = $('div.item-desc.pull-left > p > a');
const itemUrl = $title.attr('href');
// 获取评分
const rate = $('div.item-desc.pull-left > p > span').text();
// 列表上提取到的信息
const single = {
title: $title.text() + ' - ' + rate,
link: itemUrl,
guid: itemUrl,
};
// 缓存
const other = await caches.tryGet(itemUrl, () => load(itemUrl));
// 合并结果
return Object.assign({}, single, other);
})
);
module.exports = {
ProcessFeed,
};