UNPKG

rsshub

Version:
841 lines (767 loc) 64.9 kB
import { type CheerioAPI, load } from 'cheerio'; import { type Context } from 'hono'; import { type DataItem, type Route, type Data, ViewType } from '@/types'; import cache from '@/utils/cache'; import ofetch from '@/utils/ofetch'; import { parseDate, parseRelativeDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; import InvalidParameterError from '@/errors/types/invalid-parameter'; const processMenu = (data: any[]) => { const result = {}; const processMenuItem = (item, parentPath = '', parentUrl?, parentShort?) => { const currentPath = parentPath ? `${parentPath}/${item.name}` : item.name; const currentUrl = item.url || parentUrl; const currentApiUrl = item.api || item.children?.[0]?.api; const currentShort = parentShort || currentUrl.split('/channel/').pop(); if (currentUrl && currentApiUrl) { result[currentPath] = { url: currentUrl, apiUrl: currentApiUrl, short: currentShort || '', }; } if (item.children && item.children.length > 0) { for (const child of item.children) { processMenuItem(child, currentPath, currentUrl, currentShort); } } }; for (const item of data) { processMenuItem(item); } return result; }; export const handler = async (ctx: Context): Promise<Data> => { const { name = '热点' } = ctx.req.param(); const limit: number = Number.parseInt(ctx.req.query('limit') ?? '30', 10); const domain: string = 'm.21jingji.com'; const baseUrl: string = `https://${domain}`; const staticBaseUrl: string = 'https://static.21jingji.com'; const menuUrl: string = new URL('m/webMenu.json', staticBaseUrl).href; const menuResponse = await ofetch(menuUrl); const menu = processMenu(menuResponse); if (!menu.hasOwnProperty(name)) { throw new InvalidParameterError('Invalid channel name'); } const currentChannel = menu[name]; const apiUrl: string = new URL(currentChannel.apiUrl, baseUrl).href; const targetUrl: string = new URL(`#/${currentChannel.url}`, baseUrl).href; const authUrl: string = new URL('reader/cbhChannelAuth', baseUrl).href; const targetResponse = await ofetch(targetUrl); const $: CheerioAPI = load(targetResponse); const language: string = $('html').attr('lang') ?? 'zh-CN'; const authResponse = await ofetch(authUrl, { method: 'POST', responseType: 'json', }); const response = await ofetch(apiUrl, { query: { short: currentChannel.short, type: 'json', page: 1, }, headers: { authorization: authResponse.token, host: domain, referer: baseUrl, }, }); let items: DataItem[] = []; items = JSON.parse(response) .slice(0, limit) .map((item): DataItem => { const title: string = item.title; const pubDate: string = item.inputtime; const linkUrl: string | undefined = item.url; const categories: string[] = [...new Set(((item.keywords ?? '') as string)?.split(/,/).filter(Boolean))]; const authors: DataItem['author'] = [...new Set([item.mp?.name, item.author, item.editor, item.source].filter(Boolean))].map((name) => ({ name, })); const guid: string = `21jingji-${item.id}`; const image: string | undefined = item.image ?? item.thumb ?? item.listthumb; const updated: number | string = item.updatetime; const processedItem: DataItem = { title, pubDate: pubDate ? timezone(parseRelativeDate(pubDate), +8) : undefined, link: linkUrl, category: categories, author: authors, guid, id: guid, image, banner: image, updated: updated ? parseDate(updated, 'X') : undefined, language, }; return processedItem; }); items = ( await Promise.all( items.map((item) => { if (!item.link) { return item; } return cache.tryGet(item.link, async (): Promise<DataItem> => { const detailResponse = await ofetch(item.link); const $$: CheerioAPI = load(detailResponse); $$('div.rela-box').remove(); $$('div.copyright').remove(); const title: string = $$('div.titleHead h1').text(); const description: string = $$('div.main_content, div.txtContent').html() ?? ''; const pubDateStr: string | undefined = $$('div.author-infos span') .text() .match(/(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2})/)?.[1]; const categories: string[] = $$('meta[name="keywords"]').attr('content')?.split(/,/) ?? item.category ?? []; const upDatedStr: string | undefined = pubDateStr; const processedItem: DataItem = { title, description, pubDate: pubDateStr ? timezone(parseDate(pubDateStr), +8) : item.pubDate, category: categories, content: { html: description, text: description, }, updated: upDatedStr ? timezone(parseDate(upDatedStr), +8) : item.updated, language, }; return { ...item, ...processedItem, }; }); }) ) ).filter((_): _ is DataItem => true); const author: string = $('title').text(); return { title: `${author} - ${name}`, description: $('meta[name=description]').attr('content'), link: targetUrl, item: items, allowEmpty: true, author, language, id: targetUrl, }; }; export const route: Route = { path: '/channel/:name{.+}?', name: '频道', url: 'm.21jingji.com', maintainers: ['nczitzk'], handler, example: '/21caijing/channel/热点', parameters: { category: '分类,默认为热点,可在对应分类页 URL 中找到', }, description: `::: tip 若订阅 [热点](https://m.21jingji.com/#/),请将 \`热点\` 作为 \`name\` 参数填入,此时目标路由为 [\`/21caijing/channel/热点\`](https://rsshub.app/21caijing/channel/热点)。 若订阅 [投资通 - 盘前情报](https://m.21jingji.com/#/channel/investment),请将 \`投资通/盘前情报\` 作为 \`name\` 参数填入,此时目标路由为 [\`/21caijing/channel/投资通/盘前情报\`](https://rsshub.app/21caijing/channel/投资通/盘前情报)。 ::: <details> <summary>更多分类</summary> #### [热点](https://m.21jingji.com/#/) #### [投资通](https://m.21jingji.com/#/channel/investment) | [推荐](https://m.21jingji.com/#/channel/investment) | [盘前情报](https://m.21jingji.com/#/channel/premkt) | [公司洞察](https://m.21jingji.com/#/channel/gsdc) | [南财研选](https://m.21jingji.com/#/channel/ncyx) | [龙虎榜](https://m.21jingji.com/#/channel/lhb) | [公告精选](https://m.21jingji.com/#/channel/notice) | [牛熊透视](https://m.21jingji.com/#/channel/bullbear) | [一周前瞻](https://m.21jingji.com/#/channel/dailyfx) | [财经日历](https://m.21jingji.com/#/) | [风口掘金](https://m.21jingji.com/#/channel/windgap) | [实时解盘](https://m.21jingji.com/#/channel/marketanalysis) | [调研内参](https://m.21jingji.com/#/channel/research) | [趋势前瞻](https://m.21jingji.com/#/channel/tendency) | [硬核选基](https://m.21jingji.com/#/channel/yhxj) | [3 分钟理财](https://m.21jingji.com/#/channel/sfzlc) | [AI 智讯](https://m.21jingji.com/#/channel/aizx) | [北向资金](https://m.21jingji.com/#/channel/northmoney) | | --------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------- | ----------------------------------------------------------------------- | | [投资通/推荐](https://rsshub.app/21caijing/channel/投资通/推荐) | [投资通/盘前情报](https://rsshub.app/21caijing/channel/投资通/盘前情报) | [投资通/公司洞察](https://rsshub.app/21caijing/channel/投资通/公司洞察) | [投资通/南财研选](https://rsshub.app/21caijing/channel/投资通/南财研选) | [投资通/龙虎榜](https://rsshub.app/21caijing/channel/投资通/龙虎榜) | [投资通/公告精选](https://rsshub.app/21caijing/channel/投资通/公告精选) | [投资通/牛熊透视](https://rsshub.app/21caijing/channel/投资通/牛熊透视) | [投资通/一周前瞻](https://rsshub.app/21caijing/channel/投资通/一周前瞻) | [投资通/财经日历](https://rsshub.app/21caijing/channel/投资通/财经日历) | [投资通/风口掘金](https://rsshub.app/21caijing/channel/投资通/风口掘金) | [投资通/实时解盘](https://rsshub.app/21caijing/channel/投资通/实时解盘) | [投资通/调研内参](https://rsshub.app/21caijing/channel/投资通/调研内参) | [投资通/趋势前瞻](https://rsshub.app/21caijing/channel/投资通/趋势前瞻) | [投资通/硬核选基](https://rsshub.app/21caijing/channel/投资通/硬核选基) | [投资通/3 分钟理财](https://rsshub.app/21caijing/channel/投资通/3分钟理财) | [投资通/AI 智讯](https://rsshub.app/21caijing/channel/投资通/AI智讯) | [投资通/北向资金](https://rsshub.app/21caijing/channel/投资通/北向资金) | #### [金融](https://m.21jingji.com/#/channel/finance) | [动态](https://m.21jingji.com/#/channel/finance) | [最保险](https://m.21jingji.com/#/channel/Insurance) | [资管](https://m.21jingji.com/#/channel/21zg) | [数字金融](https://m.21jingji.com/#/channel/szjr) | [私人银行](https://m.21jingji.com/#/channel/sryh) | [普惠](https://m.21jingji.com/#/channel/puhui) | [观债](https://m.21jingji.com/#/channel/21gz) | [金融研究](https://m.21jingji.com/#/channel/jryj) | [投教基地](https://m.21jingji.com/#/channel/tjjd) | [银行](https://m.21jingji.com/#/channel/bank) | [非银金融](https://m.21jingji.com/#/channel/nonbank) | [金融人事](https://m.21jingji.com/#/channel/jrrs) | | ----------------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | | [金融/动态](https://rsshub.app/21caijing/channel/金融/动态) | [金融/最保险](https://rsshub.app/21caijing/channel/金融/最保险) | [金融/资管](https://rsshub.app/21caijing/channel/金融/资管) | [金融/数字金融](https://rsshub.app/21caijing/channel/金融/数字金融) | [金融/私人银行](https://rsshub.app/21caijing/channel/金融/私人银行) | [金融/普惠](https://rsshub.app/21caijing/channel/金融/普惠) | [金融/观债](https://rsshub.app/21caijing/channel/金融/观债) | [金融/金融研究](https://rsshub.app/21caijing/channel/金融/金融研究) | [金融/投教基地](https://rsshub.app/21caijing/channel/金融/投教基地) | [金融/银行](https://rsshub.app/21caijing/channel/金融/银行) | [金融/非银金融](https://rsshub.app/21caijing/channel/金融/非银金融) | [金融/金融人事](https://rsshub.app/21caijing/channel/金融/金融人事) | #### [宏观](https://m.21jingji.com/#/channel/politics) #### [学习经济](https://m.21jingji.com/#/jujiao/xxjjIndexV3) | [经济思想](https://m.21jingji.com/#/https://m.21jingji.com/news/xxjj) | [学习经济卡片](https://m.21jingji.com/#/channel/mrjj) | [高质量发展](https://m.21jingji.com/#/channel/gzlfz) | [经济政策](https://m.21jingji.com/#/channel/jjzc) | [广东在行动](https://m.21jingji.com/#/channel/gdzxd) | [数说经济](https://m.21jingji.com/#/channel/ssjj) | [学习视频](https://m.21jingji.com/#/channel/xxsp) | [学习党史](https://m.21jingji.com/#/) | | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | [学习经济/经济思想](https://rsshub.app/21caijing/channel/学习经济/经济思想) | [学习经济/学习经济卡片](https://rsshub.app/21caijing/channel/学习经济/学习经济卡片) | [学习经济/高质量发展](https://rsshub.app/21caijing/channel/学习经济/高质量发展) | [学习经济/经济政策](https://rsshub.app/21caijing/channel/学习经济/经济政策) | [学习经济/广东在行动](https://rsshub.app/21caijing/channel/学习经济/广东在行动) | [学习经济/数说经济](https://rsshub.app/21caijing/channel/学习经济/数说经济) | [学习经济/学习视频](https://rsshub.app/21caijing/channel/学习经济/学习视频) | [学习经济/学习党史](https://rsshub.app/21caijing/channel/学习经济/学习党史) | #### [大湾区](https://m.21jingji.com/#/channel/GHM_GreaterBay) | [动态](https://m.21jingji.com/#/channel/GHM_GreaterBay) | [湾区金融](https://m.21jingji.com/#/channel/wqjr) | [大湾区直播室](https://m.21jingji.com/#/channel/dwqzbs) | [高成长企业](https://m.21jingji.com/#/channel/gczqy) | [产业地理](https://m.21jingji.com/#/channel/cydl) | [数智湾区](https://m.21jingji.com/#/channel/szwq) | [湾区金融大咖会](https://m.21jingji.com/#/channel/wqjrdkh) | [“港”创科 25 人](https://m.21jingji.com/#/channel/gck) | [湾区论坛](https://m.21jingji.com/#/channel/wqlt) | | --------------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | | [大湾区/动态](https://rsshub.app/21caijing/channel/大湾区/动态) | [大湾区/湾区金融](https://rsshub.app/21caijing/channel/大湾区/湾区金融) | [大湾区/大湾区直播室](https://rsshub.app/21caijing/channel/大湾区/大湾区直播室) | [大湾区/高成长企业](https://rsshub.app/21caijing/channel/大湾区/高成长企业) | [大湾区/产业地理](https://rsshub.app/21caijing/channel/大湾区/产业地理) | [大湾区/数智湾区](https://rsshub.app/21caijing/channel/大湾区/数智湾区) | [大湾区/湾区金融大咖会](https://rsshub.app/21caijing/channel/大湾区/湾区金融大咖会) | [大湾区/“港”创科 25 人](https://rsshub.app/21caijing/channel/大湾区/“港”创科25人) | [大湾区/湾区论坛](https://rsshub.app/21caijing/channel/大湾区/湾区论坛) | #### [证券](https://m.21jingji.com/#/channel/capital) | [动态](https://m.21jingji.com/#/channel/capital) | [赢基金](https://m.21jingji.com/#/channel/funds) | [券业观察](https://m.21jingji.com/#/channel/securities) | [期市一线](https://m.21jingji.com/#/channel/qsyx) | [ETF](https://m.21jingji.com/#/channel/govern) | | ----------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------- | | [证券/动态](https://rsshub.app/21caijing/channel/证券/动态) | [证券/赢基金](https://rsshub.app/21caijing/channel/证券/赢基金) | [证券/券业观察](https://rsshub.app/21caijing/channel/证券/券业观察) | [证券/期市一线](https://rsshub.app/21caijing/channel/证券/期市一线) | [证券/ETF](https://rsshub.app/21caijing/channel/证券/ETF) | #### [汽车](https://m.21jingji.com/#/channel/auto) | [热闻](https://m.21jingji.com/#/channel/autofocus) | [新汽车](https://m.21jingji.com/#/channel/newauto) | [车访间](https://m.21jingji.com/#/channel/autointerview) | [财说车](https://m.21jingji.com/#/channel/autofortune) | [汽车人](https://m.21jingji.com/#/channel/autopeople) | [汽车商业地理](https://m.21jingji.com/#/channel/autogeo) | [汽车金融](https://m.21jingji.com/#/channel/autofinance) | [行业报告](https://m.21jingji.com/#/channel/autoreport) | [聚焦](https://m.21jingji.com/#/channel/autospotlight) | | ----------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------- | | [汽车/热闻](https://rsshub.app/21caijing/channel/汽车/热闻) | [汽车/新汽车](https://rsshub.app/21caijing/channel/汽车/新汽车) | [汽车/车访间](https://rsshub.app/21caijing/channel/汽车/车访间) | [汽车/财说车](https://rsshub.app/21caijing/channel/汽车/财说车) | [汽车/汽车人](https://rsshub.app/21caijing/channel/汽车/汽车人) | [汽车/汽车商业地理](https://rsshub.app/21caijing/channel/汽车/汽车商业地理) | [汽车/汽车金融](https://rsshub.app/21caijing/channel/汽车/汽车金融) | [汽车/行业报告](https://rsshub.app/21caijing/channel/汽车/行业报告) | [汽车/聚焦](https://rsshub.app/21caijing/channel/汽车/聚焦) | #### [观点](https://m.21jingji.com/#/channel/opinion) #### [新健康](https://m.21jingji.com/#/channel/healthnews) | [动态](https://m.21jingji.com/#/channel/healthdt) | [21 健讯 Daily](https://m.21jingji.com/#/channel/healthinfo) | [21CC](https://m.21jingji.com/#/channel/21cc) | [21 健谈](https://m.21jingji.com/#/channel/healthtalk) | [名医说](https://m.21jingji.com/#/channel/doctorssay) | [数字医疗](https://m.21jingji.com/#/channel/digitalhealth) | [21H 院长对话](https://m.21jingji.com/#/channel/talkwithdean) | [医健 IPO 解码](https://m.21jingji.com/#/channel/medicalIPO) | [研究报告](https://m.21jingji.com/#/channel/yjbg) | [21 科普](https://m.21jingji.com/#/channel/healthkp) | | --------------------------------------------------------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------- | | [新健康/动态](https://rsshub.app/21caijing/channel/新健康/动态) | [新健康/21 健讯 Daily](https://rsshub.app/21caijing/channel/新健康/21健讯Daily) | [新健康/21CC](https://rsshub.app/21caijing/channel/新健康/21CC) | [新健康/21 健谈](https://rsshub.app/21caijing/channel/新健康/21健谈) | [新健康/名医说](https://rsshub.app/21caijing/channel/新健康/名医说) | [新健康/数字医疗](https://rsshub.app/21caijing/channel/新健康/数字医疗) | [新健康/21H 院长对话](https://rsshub.app/21caijing/channel/新健康/21H院长对话) | [新健康/医健 IPO 解码](https://rsshub.app/21caijing/channel/新健康/医健IPO解码) | [新健康/研究报告](https://rsshub.app/21caijing/channel/新健康/研究报告) | [新健康/21 科普](https://rsshub.app/21caijing/channel/新健康/21科普) | #### [ESG](https://m.21jingji.com/#/channel/esg) | [ESG 发布厅](https://m.21jingji.com/#/channel/esg) | [绿色公司](https://m.21jingji.com/#/channel/lsgs) | [绿色金融](https://m.21jingji.com/#/channel/lsjr) | [净零碳城市](https://m.21jingji.com/#/channel/jltcs) | [碳市场](https://m.21jingji.com/#/channel/) | [生物多样性](https://m.21jingji.com/#/channel/swdyx) | [行业周报](https://m.21jingji.com/#/channel/hyzb) | [研究报告](https://m.21jingji.com/#/) | | -------------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | | [ESG/ESG 发布厅](https://rsshub.app/21caijing/channel/ESG/ESG发布厅) | [ESG/绿色公司](https://rsshub.app/21caijing/channel/ESG/绿色公司) | [ESG/绿色金融](https://rsshub.app/21caijing/channel/ESG/绿色金融) | [ESG/净零碳城市](https://rsshub.app/21caijing/channel/ESG/净零碳城市) | [ESG/碳市场](https://rsshub.app/21caijing/channel/ESG/碳市场) | [ESG/生物多样性](https://rsshub.app/21caijing/channel/ESG/生物多样性) | [ESG/行业周报](https://rsshub.app/21caijing/channel/ESG/行业周报) | [ESG/研究报告](https://rsshub.app/21caijing/channel/ESG/研究报告) | #### [全球市场](https://m.21jingji.com/#/channel/global) | [动态](https://m.21jingji.com/#/channel/global) | [全球财经连线](https://m.21jingji.com/#/channel/globaleconomics) | [直击华尔街](https://m.21jingji.com/#/channel/wallstreet) | [百家跨国公司看中国](https://m.21jingji.com/#/channel/mnc) | [全球央行观察](https://m.21jingji.com/#/channel/globalcentralbanks) | [全球能源观察](https://m.21jingji.com/#/channel/globalenergy) | [美股一线](https://m.21jingji.com/#/channel/USstock) | [港股一线](https://m.21jingji.com/#/channel/HKstock) | [全球金融观察](https://m.21jingji.com/#/channel/globalfinance) | [联合国现场](https://m.21jingji.com/#/channel/unitednations) | [全球央行月报](https://m.21jingji.com/#/channel/centralbankreport) | [全球商品观察](https://m.21jingji.com/#/channel/globalcommodities) | | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | | [全球市场/动态](https://rsshub.app/21caijing/channel/全球市场/动态) | [全球市场/全球财经连线](https://rsshub.app/21caijing/channel/全球市场/全球财经连线) | [全球市场/直击华尔街](https://rsshub.app/21caijing/channel/全球市场/直击华尔街) | [全球市场/百家跨国公司看中国](https://rsshub.app/21caijing/channel/全球市场/百家跨国公司看中国) | [全球市场/全球央行观察](https://rsshub.app/21caijing/channel/全球市场/全球央行观察) | [全球市场/全球能源观察](https://rsshub.app/21caijing/channel/全球市场/全球能源观察) | [全球市场/美股一线](https://rsshub.app/21caijing/channel/全球市场/美股一线) | [全球市场/港股一线](https://rsshub.app/21caijing/channel/全球市场/港股一线) | [全球市场/全球金融观察](https://rsshub.app/21caijing/channel/全球市场/全球金融观察) | [全球市场/联合国现场](https://rsshub.app/21caijing/channel/全球市场/联合国现场) | [全球市场/全球央行月报](https://rsshub.app/21caijing/channel/全球市场/全球央行月报) | [全球市场/全球商品观察](https://rsshub.app/21caijing/channel/全球市场/全球商品观察) | #### [一带一路](https://m.21jingji.com/#/channel/BandR) #### [数读](https://m.21jingji.com/#/channel/readnumber) #### [理财通](https://m.21jingji.com/#/channel/financing) | [动态](https://m.21jingji.com/#/channel/licaidongtai) | [数据库](https://m.21jingji.com/#/channel/sjk) | [研报](https://m.21jingji.com/#/channel/yanbao) | [投教](https://m.21jingji.com/#/channel/tj) | [政策](https://m.21jingji.com/#/channel/zhengce) | [固收+](https://m.21jingji.com/#/channel/gushou) | [纯固收](https://m.21jingji.com/#/channel/chungushou) | [现金](https://m.21jingji.com/#/channel/xianjin) | [混合](https://m.21jingji.com/#/channel/hunhe) | [权益](https://m.21jingji.com/#/channel/quanyi) | | --------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | | [理财通/动态](https://rsshub.app/21caijing/channel/理财通/动态) | [理财通/数据库](https://rsshub.app/21caijing/channel/理财通/数据库) | [理财通/研报](https://rsshub.app/21caijing/channel/理财通/研报) | [理财通/投教](https://rsshub.app/21caijing/channel/理财通/投教) | [理财通/政策](https://rsshub.app/21caijing/channel/理财通/政策) | [理财通/固收+](https://rsshub.app/21caijing/channel/理财通/固收+) | [理财通/纯固收](https://rsshub.app/21caijing/channel/理财通/纯固收) | [理财通/现金](https://rsshub.app/21caijing/channel/理财通/现金) | [理财通/混合](https://rsshub.app/21caijing/channel/理财通/混合) | [理财通/权益](https://rsshub.app/21caijing/channel/理财通/权益) | #### [直播](https://m.21jingji.com/#/channel/live) #### [长三角](https://m.21jingji.com/#/channel/yangtzeriverdelta) #### [论坛活动](https://m.21jingji.com/#/channel/market) #### [创投](https://m.21jingji.com/#/channel/entrepreneur) #### [投教](https://m.21jingji.com/#/channel/tjzjy) | [动态](https://m.21jingji.com/#/channel/tjzjy) | [投教知识](https://m.21jingji.com/#/channel/tjzs) | [公益活动](https://m.21jingji.com/#/channel/gyhd) | | ----------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | | [投教/动态](https://rsshub.app/21caijing/channel/投教/动态) | [投教/投教知识](https://rsshub.app/21caijing/channel/投教/投教知识) | [投教/公益活动](https://rsshub.app/21caijing/channel/投教/公益活动) | #### [海洋经济](https://m.21jingji.com/#/channel/oceaneconomy) #### [数字合规](https://m.21jingji.com/#/channel/compliance) #### [公司](https://m.21jingji.com/#/channel/company) | [动态](https://m.21jingji.com/#/channel/company) | [电子通信](https://m.21jingji.com/#/channel/electrocommunication) | [互联网](https://m.21jingji.com/#/channel/internet) | [高端制造](https://m.21jingji.com/#/channel/highend) | [新能源](https://m.21jingji.com/#/channel/newenergy) | [消费](https://m.21jingji.com/#/channel/consumption) | [地产基建](https://m.21jingji.com/#/channel/infrastructure) | [IPO](https://m.21jingji.com/#/channel/IPO) | [文旅](https://m.21jingji.com/#/channel/culturetravel) | | ----------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------- | --------------------------------------------------------- | ----------------------------------------------------------- | | [公司/动态](https://rsshub.app/21caijing/channel/公司/动态) | [公司/电子通信](https://rsshub.app/21caijing/channel/公司/电子通信) | [公司/互联网](https://rsshub.app/21caijing/channel/公司/互联网) | [公司/高端制造](https://rsshub.app/21caijing/channel/公司/高端制造) | [公司/新能源](https://rsshub.app/21caijing/channel/公司/新能源) | [公司/消费](https://rsshub.app/21caijing/channel/公司/消费) | [公司/地产基建](https://rsshub.app/21caijing/channel/公司/地产基建) | [公司/IPO](https://rsshub.app/21caijing/channel/公司/IPO) | [公司/文旅](https://rsshub.app/21caijing/channel/公司/文旅) | #### [人文](https://m.21jingji.com/#/channel/life) #### [SFC Global](https://m.21jingji.com/#/channel/SFCGlobal) | [News](https://m.21jingji.com/#/channel/SFCGlobal) | [SFC Markets and Finance](https://m.21jingji.com/#/channel/ SFCMarketsandFinance) | [SFC Market Talk](https://m.21jingji.com/#/channel/ SFCMarketTalk) | [CBN](https://m.21jingji.com/#/channel/CBN) | [Multinationals on China](https://m.21jingji.com/#/channel/MultinationalsonChina) | [Companies in the GBA](https://m.21jingji.com/#/channel/CompaniesintheGBA) | | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | | [SFC Global/News](https://rsshub.app/21caijing/channel/SFC Global/News) | [SFC Global/SFC Markets and Finance](https://rsshub.app/21caijing/channel/SFC Global/SFC Markets and Finance) | [SFC Global/SFC Market Talk](https://rsshub.app/21caijing/channel/SFC Global/SFC Market Talk) | [SFC Global/CBN](https://rsshub.app/21caijing/channel/SFC Global/CBN) | [SFC Global/Multinationals on China](https://rsshub.app/21caijing/channel/SFC Global/Multinationals on China) | [SFC Global/Companies in the GBA](https://rsshub.app/21caijing/channel/SFC Global/Companies in the GBA) | #### [南方财经报道](https://m.21jingji.com/#/channel/nfcjbd) #### [链上预制菜](https://m.21jingji.com/#/channel/precookedfood) | [动态](https://m.21jingji.com/#/channel/precookedfood) | [活动](https://m.21jingji.com/#/channel/foodevent) | [报道](https://m.21jingji.com/#/channel/foodnews) | [智库/课题](https://m.21jingji.com/#/channel/foodtopic) | [数据/创新案例](https://m.21jingji.com/#/channel/foodcase) | [链接平台](https://m.21jingji.com/#/channel/foodlink) | | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | | [链上预制菜/动态](https://rsshub.app/21caijing/channel/链上预制菜/动态) | [链上预制菜/活动](https://rsshub.app/21caijing/channel/链上预制菜/活动) | [链上预制菜/报道](https://rsshub.app/21caijing/channel/链上预制菜/报道) | [链上预制菜/智库/课题](https://rsshub.app/21caijing/channel/链上预制菜/智库/课题) | [链上预制菜/数据/创新案例](https://rsshub.app/21caijing/channel/链上预制菜/数据/创新案例) | [链上预制菜/链接平台](https://rsshub.app/21caijing/channel/链上预制菜/链接平台) | </details> `, categories: ['finance'], features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportRadar: true, supportBT: false, supportPodcast: false, supportScihub: false, }, radar: [ { title: '热点', source: ['m.21jingji.com/#/'], target: '/channel/热点', }, { title: '投资通', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通', }, { title: '投资通/推荐', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/推荐', }, { title: '投资通/盘前情报', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/盘前情报', }, { title: '投资通/公司洞察', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/公司洞察', }, { title: '投资通/南财研选', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/南财研选', }, { title: '投资通/龙虎榜', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/龙虎榜', }, { title: '投资通/公告精选', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/公告精选', }, { title: '投资通/牛熊透视', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/牛熊透视', }, { title: '投资通/一周前瞻', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/一周前瞻', }, { title: '投资通/财经日历', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/财经日历', }, { title: '投资通/风口掘金', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/风口掘金', }, { title: '投资通/实时解盘', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/实时解盘', }, { title: '投资通/调研内参', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/调研内参', }, { title: '投资通/趋势前瞻', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/趋势前瞻', }, { title: '投资通/硬核选基', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/硬核选基', }, { title: '投资通/3分钟理财', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/3分钟理财', }, { title: '投资通/AI智讯', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/AI智讯', }, { title: '投资通/北向资金', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/投资通/北向资金', }, { title: '金融', source: ['m.21jingji.com/#/channel/finance'], target: '/channel/金融', }, { title: '金融/动态', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/动态', }, { title: '金融/最保险', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/最保险', }, { title: '金融/资管', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/资管', }, { title: '金融/数字金融', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/数字金融', }, { title: '金融/私人银行', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/私人银行', }, { title: '金融/普惠', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/普惠', }, { title: '金融/观债', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/观债', }, { title: '金融/金融研究', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/金融研究', }, { title: '金融/投教基地', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/投教基地', }, { title: '金融/银行', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/银行', }, { title: '金融/非银金融', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/非银金融', }, { title: '金融/金融人事', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/金融/金融人事', }, { title: '宏观', source: ['m.21jingji.com/#/channel/politics'], target: '/channel/宏观', }, { title: '学习经济', source: ['m.21jingji.com/#/jujiao/xxjjIndexV3'], target: '/channel/学习经济', }, { title: '学习经济/经济思想', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/学习经济/经济思想', }, { title: '学习经济/学习经济卡片', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/学习经济/学习经济卡片', }, { title: '学习经济/高质量发展', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/学习经济/高质量发展', }, { title: '学习经济/经济政策', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/学习经济/经济政策', }, { title: '学习经济/广东在行动', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/学习经济/广东在行动', }, { title: '学习经济/数说经济', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/学习经济/数说经济', }, { title: '学习经济/学习视频', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/学习经济/学习视频', }, { title: '学习经济/学习党史', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/学习经济/学习党史', }, { title: '大湾区', source: ['m.21jingji.com/#/channel/GHM_GreaterBay'], target: '/channel/大湾区', }, { title: '大湾区/动态', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/大湾区/动态', }, { title: '大湾区/湾区金融', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/大湾区/湾区金融', }, { title: '大湾区/大湾区直播室', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/大湾区/大湾区直播室', }, { title: '大湾区/高成长企业', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/大湾区/高成长企业', }, { title: '大湾区/产业地理', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/大湾区/产业地理', }, { title: '大湾区/数智湾区', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/大湾区/数智湾区', }, { title: '大湾区/湾区金融大咖会', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/大湾区/湾区金融大咖会', }, { title: '大湾区/“港”创科25人', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/大湾区/“港”创科25人', }, { title: '大湾区/湾区论坛', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/大湾区/湾区论坛', }, { title: '证券', source: ['m.21jingji.com/#/channel/capital'], target: '/channel/证券', }, { title: '证券/动态', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/证券/动态', }, { title: '证券/赢基金', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/证券/赢基金', }, { title: '证券/券业观察', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/证券/券业观察', }, { title: '证券/期市一线', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/证券/期市一线', }, { title: '证券/ETF', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/证券/ETF', }, { title: '汽车', source: ['m.21jingji.com/#/channel/auto'], target: '/channel/汽车', }, { title: '汽车/热闻', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/汽车/热闻', }, { title: '汽车/新汽车', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/汽车/新汽车', }, { title: '汽车/车访间', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/汽车/车访间', }, { title: '汽车/财说车', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/汽车/财说车', }, { title: '汽车/汽车人', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/汽车/汽车人', }, { title: '汽车/汽车商业地理', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/汽车/汽车商业地理', }, { title: '汽车/汽车金融', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/汽车/汽车金融', }, { title: '汽车/行业报告', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/汽车/行业报告', }, { title: '汽车/聚焦', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/汽车/聚焦', }, { title: '观点', source: ['m.21jingji.com/#/channel/opinion'], target: '/channel/观点', }, { title: '新健康', source: ['m.21jingji.com/#/channel/healthnews'], target: '/channel/新健康', }, { title: '新健康/动态', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/新健康/动态', }, { title: '新健康/21健讯Daily', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/新健康/21健讯Daily', }, { title: '新健康/21CC', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/新健康/21CC', }, { title: '新健康/21健谈', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/新健康/21健谈', }, { title: '新健康/名医说', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/新健康/名医说', }, { title: '新健康/数字医疗', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/新健康/数字医疗', }, { title: '新健康/21H院长对话', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/新健康/21H院长对话', }, { title: '新健康/医健IPO解码', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/新健康/医健IPO解码', }, { title: '新健康/研究报告', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/新健康/研究报告', }, { title: '新健康/21科普', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/新健康/21科普', }, { title: 'ESG', source: ['m.21jingji.com/#/channel/esg'], target: '/channel/ESG', }, { title: 'ESG/ESG发布厅', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/ESG/ESG发布厅', }, { title: 'ESG/绿色公司', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/ESG/绿色公司', }, { title: 'ESG/绿色金融', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/ESG/绿色金融', }, { title: 'ESG/净零碳城市', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/ESG/净零碳城市', }, { title: 'ESG/碳市场', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/ESG/碳市场', }, { title: 'ESG/生物多样性', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/ESG/生物多样性', }, { title: 'ESG/行业周报', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/ESG/行业周报', }, { title: 'ESG/研究报告', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/ESG/研究报告', }, { title: '全球市场', source: ['m.21jingji.com/#/channel/global'], target: '/channel/全球市场', }, { title: '全球市场/动态', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/动态', }, { title: '全球市场/全球财经连线', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/全球财经连线', }, { title: '全球市场/直击华尔街', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/直击华尔街', }, { title: '全球市场/百家跨国公司看中国', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/百家跨国公司看中国', }, { title: '全球市场/全球央行观察', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/全球央行观察', }, { title: '全球市场/全球能源观察', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/全球能源观察', }, { title: '全球市场/美股一线', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/美股一线', }, { title: '全球市场/港股一线', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/港股一线', }, { title: '全球市场/全球金融观察', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/全球金融观察', }, { title: '全球市场/联合国现场', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/联合国现场', }, { title: '全球市场/全球央行月报', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/全球央行月报', }, { title: '全球市场/全球商品观察', source: ['m.21jingji.com/#/channel/investment'], target: '/channel/全球市场/全球商品观察', }, { title: '一带一路', source: ['m.21jingji.com/#/channel/BandR'], target: '/channel/一带一路', }, { title: '数读', source: ['m.21jingji.com/#/channel/readnumber'], target: '/channel/数读', }, { ti