feat: 新增免费演出雷达工具与定投评估功能,优化周报提醒逻辑
1. 新增免费演出雷达工具:含秀动/猫眼/大麦平台抓取、本地代理鉴权配置 2. 新增建行定投评估模块:四大指数PE-TTM估值与定投档位建议 3. 新增推送告警白名单过滤功能,限制推送指定指数告警 4. 重构周报首页提醒逻辑,移至服务端处理并减少前端请求 5. 新增多套调试探针脚本与单元测试用例
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* 探针脚本(第五轮):带 Referer 重试中证官网 xls(含 市盈率1/市盈率2 双口径)
|
||||
* 用法:node dev_test_scripts/debug/debug_dip_eval_sources5.js
|
||||
*/
|
||||
const axios = require('axios')
|
||||
const iconv = require('iconv-lite')
|
||||
const UA = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Safari/537.36', 'Referer': 'https://www.csindex.com.cn/' }
|
||||
|
||||
const tryXls = async (url, label) => {
|
||||
try {
|
||||
const res = await axios.get(url, { timeout: 25000, responseType: 'arraybuffer', headers: UA, validateStatus: () => true })
|
||||
const buf = Buffer.from(res.data)
|
||||
if (res.status >= 400) return console.log(`[${label}] status=${res.status} bytes=${buf.length}`)
|
||||
const text = iconv.decode(buf, 'gb18030')
|
||||
console.log(`[${label}] status=${res.status} bytes=${buf.length}`)
|
||||
const idx = text.indexOf('市盈率')
|
||||
if (idx >= 0) {
|
||||
const clean = s => s.replace(/[^\x20-\x7E\u4e00-\u9fff,。.·\-\/]/g, ' ').replace(/\s+/g, ' ')
|
||||
console.log(` 表头: ${clean(text.slice(Math.max(0, idx - 80), idx + 140))}`)
|
||||
// 数据行通常以日期开头,取含“日期格式”的最后几行
|
||||
const lines = text.split(/[^\x20-\x7E\u4e00-\u9fff,。.·\-\/\t]{3,}/).filter(l => /\d{4}[\/-]\d{1,2}[\/-]\d{1,2}/.test(l))
|
||||
if (lines.length) {
|
||||
console.log(` 最新行: ${clean(lines[lines.length - 1]).slice(0, 320)}`)
|
||||
console.log(` 次新行: ${clean(lines[lines.length - 2] || '').slice(0, 320)}`)
|
||||
}
|
||||
} else {
|
||||
console.log(` 未找到“市盈率”,magic=${buf.slice(0, 8).toString('hex')}`)
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(`[${label}] 异常: ${e.message}`)
|
||||
}
|
||||
}
|
||||
|
||||
;(async () => {
|
||||
await tryXls('https://csi-web-dev.oss-cn-shanghai-finance-1-pub.aliyuncs.com/static/html/csindex/public/uploads/file/autofile/perf/000905perf.xls', 'oss-xls-000905')
|
||||
await tryXls('https://www.csindex.com.cn/uploads/file/autofile/perf/000905perf.xls', 'www-xls-000905')
|
||||
await tryXls('https://www.csindex.com.cn/csindex-home/exportExcel/downloadIndexHistoryExcel?indexCode=000905', 'history-xls-000905')
|
||||
})()
|
||||
Reference in New Issue
Block a user