We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lizouzt/TrendRadar'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>热点新闻分析</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js" integrity="sha512-BNaRQnYJYiPSqHHDb58B0yaPfCu+Wgds8Gp/gU33kqBtgNS4tSPHuGibyoeqMV/TJlSKda6FXzoEyYGjTe+vXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<style>
* { box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
margin: 0;
padding: 16px;
background: #fafafa;
color: #333;
line-height: 1.5;
}
.container {
max-width: 600px;
margin: 0 auto;
background: white;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 16px rgba(0,0,0,0.06);
}
.header {
background: linear-gradient(135deg, #7a72ff 0%, #3aafed 100%);
color: #fff;
padding: 32px 24px;
text-align: center;
position: relative;
}
.save-buttons {
position: absolute;
top: 16px;
right: 16px;
display: flex;
gap: 8px;
}
.save-btn {
background: rgba(255, 255, 255, 0.2);
border: 1px solid rgba(255, 255, 255, 0.3);
color: white;
padding: 8px 16px;
border-radius: 6px;
cursor: pointer;
font-size: 13px;
font-weight: 500;
transition: all 0.2s ease;
backdrop-filter: blur(10px);
white-space: nowrap;
}
.save-btn:hover {
background: rgba(255, 255, 255, 0.3);
border-color: rgba(255, 255, 255, 0.5);
transform: translateY(-1px);
}
.save-btn:active {
transform: translateY(0);
}
.save-btn:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.header-title {
font-size: 22px;
font-weight: 700;
margin: 0 0 20px 0;
}
.header-info {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
font-size: 14px;
opacity: 0.95;
}
.info-item {
text-align: center;
}
.info-label {
display: block;
font-size: 12px;
opacity: 0.8;
margin-bottom: 4px;
}
.info-value {
font-weight: 600;
font-size: 16px;
}
.content {
padding: 24px;
}
.word-group {
margin-bottom: 40px;
}
.word-group:first-child {
margin-top: 0;
}
.word-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20px;
padding-bottom: 8px;
border-bottom: 1px solid #f0f0f0;
}
.word-info {
display: flex;
align-items: center;
gap: 12px;
}
.word-name {
font-size: 17px;
font-weight: 600;
color: #1a1a1a;
}
.word-count {
color: #666;
font-size: 13px;
font-weight: 500;
}
.word-count.hot { color: #dc2626; font-weight: 600; }
.word-count.warm { color: #ea580c; font-weight: 600; }
.word-index {
color: #999;
font-size: 12px;
}
.news-item {
margin-bottom: 20px;
padding: 16px 0;
border-bottom: 1px solid #f5f5f5;
position: relative;
display: flex;
gap: 12px;
align-items: center;
}
.news-item:last-child {
border-bottom: none;
}
.news-item.new::after {
content: "NEW";
position: absolute;
top: 12px;
right: 0;
background: #fbbf24;
color: #92400e;
font-size: 9px;
font-weight: 700;
padding: 3px 6px;
border-radius: 4px;
letter-spacing: 0.5px;
}
.news-number {
color: #999;
font-size: 13px;
font-weight: 600;
min-width: 20px;
text-align: center;
flex-shrink: 0;
background: #f8f9fa;
border-radius: 50%;
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
align-self: flex-start;
margin-top: 8px;
}
.news-content {
flex: 1;
min-width: 0;
padding-right: 40px;
}
.news-item.new .news-content {
padding-right: 50px;
}
.news-header {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 8px;
flex-wrap: wrap;
}
.source-name {
color: #666;
font-size: 12px;
font-weight: 500;
}
.rank-num {
color: #fff;
background: #6b7280;
font-size: 10px;
font-weight: 700;
padding: 2px 6px;
border-radius: 10px;
min-width: 18px;
text-align: center;
}
.rank-num.top { background: #dc2626; }
.rank-num.high { background: #ea580c; }
.time-info {
color: #999;
font-size: 11px;
}
.count-info {
color: #059669;
font-size: 11px;
font-weight: 500;
}
.news-title {
font-size: 15px;
line-height: 1.4;
color: #1a1a1a;
margin: 0;
}
.news-link {
color: #2563eb;
text-decoration: none;
}
.news-link:hover {
text-decoration: underline;
}
.news-link:visited {
color: #7c3aed;
}
.topic-trend-section {
margin-top: 40px;
padding-top: 24px;
border-top: 2px solid #f0f0f0;
}
.topic-trend-title {
color: #1a1a1a;
font-size: 16px;
font-weight: 600;
margin: 0 0 20px 0;
}
.viral-topic-item {
padding: 16px 0;
border-bottom: 1px solid #f5f5f5;
}
.viral-topic-item:last-child {
border-bottom: none;
}
.viral-topic-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 12px;
}
.viral-topic-keyword {
font-size: 16px;
font-weight: 600;
}
.topic-item {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 0;
border-bottom: 1px solid #f9f9f9;
}
.topic-item:last-child {
border-bottom: none;
}
.viral-topic-stats {
font-size: 12px;
color: #666;
}
.viral-topic-stats .new { color: #dc2626; font-weight: bold; }
.viral-topic-stats .up { color: #f59e0b; font-weight: bold; }
.viral-topic-stats .level-high { color: #dc2626; font-weight: bold; }
.viral-topic-stats .level-mid { color: #f59e0b; font-weight: bold; }
.viral-sample-titles {
list-style: none;
padding-left: 16px;
margin: 0;
font-size: 13px;
}
.viral-sample-titles li {
color: #666;
padding: 4px 0;
position: relative;
}
.viral-sample-titles li::before { content: '▪'; position: absolute; left: -14px; color: #ccc; }
.new-section {
margin-top: 40px;
padding-top: 24px;
border-top: 2px solid #f0f0f0;
}
.new-section-title {
color: #1a1a1a;
font-size: 16px;
font-weight: 600;
margin: 0 0 20px 0;
}
.new-source-group {
margin-bottom: 24px;
}
.new-source-title {
color: #666;
font-size: 13px;
font-weight: 500;
margin: 0 0 12px 0;
padding-bottom: 6px;
border-bottom: 1px solid #f5f5f5;
}
.new-item {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 0;
border-bottom: 1px solid #f9f9f9;
}
.new-item:last-child {
border-bottom: none;
}
.new-item-number {
color: #999;
font-size: 12px;
font-weight: 600;
min-width: 18px;
text-align: center;
flex-shrink: 0;
background: #f8f9fa;
border-radius: 50%;
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.new-item-rank {
color: #fff;
background: #6b7280;
font-size: 10px;
font-weight: 700;
padding: 3px 6px;
border-radius: 8px;
min-width: 20px;
text-align: center;
flex-shrink: 0;
}
.new-item-rank.top { background: #dc2626; }
.new-item-rank.high { background: #ea580c; }
.new-item-content {
flex: 1;
min-width: 0;
}
.new-item-title {
font-size: 14px;
line-height: 1.4;
color: #1a1a1a;
margin: 0;
}
.error-section {
background: #fef2f2;
border: 1px solid #fecaca;
border-radius: 8px;
padding: 16px;
margin-bottom: 24px;
}
.error-title {
color: #dc2626;
font-size: 14px;
font-weight: 600;
margin: 0 0 8px 0;
}
.error-list {
list-style: none;
padding: 0;
margin: 0;
}
.error-item {
color: #991b1b;
font-size: 13px;
padding: 2px 0;
font-family: 'SF Mono', Consolas, monospace;
}
.footer {
margin-top: 32px;
padding: 20px 24px;
background: #f8f9fa;
border-top: 1px solid #e5e7eb;
text-align: center;
}
.footer-content {
font-size: 13px;
color: #6b7280;
line-height: 1.6;
}
.footer-link {
color: #4f46e5;
text-decoration: none;
font-weight: 500;
transition: color 0.2s ease;
}
.footer-link:hover {
color: #7c3aed;
text-decoration: underline;
}
.project-name {
font-weight: 600;
color: #374151;
}
@media (max-width: 480px) {
body { padding: 12px; }
.header { padding: 24px 20px; }
.content { padding: 20px; }
.footer { padding: 16px 20px; }
.header-info { grid-template-columns: 1fr; gap: 12px; }
.news-header { gap: 6px; }
.news-content { padding-right: 45px; }
.news-item { gap: 8px; }
.new-item { gap: 8px; }
.news-number { width: 20px; height: 20px; font-size: 12px; }
.save-buttons {
position: static;
margin-bottom: 16px;
display: flex;
gap: 8px;
justify-content: center;
flex-direction: column;
width: 100%;
}
.save-btn {
width: 100%;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="save-buttons">
<button class="save-btn" onclick="saveAsImage()">保存为图片</button>
<button class="save-btn" onclick="saveAsMultipleImages()">分段保存</button>
</div>
<div class="header-title">热点新闻分析</div>
<div class="header-info">
<div class="info-item">
<span class="info-label">报告类型</span>
<span class="info-value">实时分析</span>
</div>
<div class="info-item">
<span class="info-label">新闻总数</span>
<span class="info-value">255 条</span>
</div>
<div class="info-item">
<span class="info-label">热点新闻</span>
<span class="info-value">9 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">12-31 02:18</span>
</div>
</div>
</div>
<div class="content">
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">ai 人工智能</div>
<div class="word-count warm">5 条</div>
</div>
<div class="word-index">1/3</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">bilibili 热搜</span><span class="rank-num top">3</span><span class="time-info">02时18分</span>
</div>
<div class="news-title"><a href="https://search.bilibili.com/all?keyword=%E7%9B%98%E7%82%B92025%E5%B9%B4%E5%BA%A6AI%E5%A4%A7%E4%BA%8B%E4%BB%B6" target="_blank" class="news-link">盘点2025年度AI大事件</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">2</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">华尔街见闻</span><span class="rank-num high">4</span><span class="time-info">02时18分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3762279" target="_blank" class="news-link">成立不到3年,被Meta以逾20亿美元收购!Manus成为“AI时代中国创业新标杆”</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">3</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">华尔街见闻</span><span class="rank-num ">8</span><span class="time-info">02时18分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3762287" target="_blank" class="news-link">沪指10连阳,机器人、AI智能体爆发,恒科指涨近2%,半导体领涨,英矽智能港股IPO涨约25%,国投白银LOF震荡调整,在岸人民币破7</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">4</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">12</span><span class="time-info">02时18分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2244203" target="_blank" class="news-link">【焦点复盘】科创50指数收涨超1%,国产算力概念全天亮眼,AI智能体概念异军突起</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">5</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">贴吧</span><span class="rank-num ">16</span><span class="time-info">02时18分</span>
</div>
<div class="news-title"><a href="https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28348548&amp;topic_name=AI%E9%80%A0%E5%81%87%E5%BD%93%E5%BA%AD%E9%9C%B2%E9%A6%85%2C%E6%B3%95%E5%AE%98%E4%B8%A5%E6%96%A5%E4%BC%AA%E9%80%A0%E8%80%85" target="_blank" class="news-link">AI造假当庭露馅,法官严斥伪造者</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">谐波器 机器人</div>
<div class="word-count ">2 条</div>
</div>
<div class="word-index">2/3</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num high">4</span><span class="time-info">02时18分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2244256" target="_blank" class="news-link">多路游资联袂入场!机器人龙头剑指新高,相关ETF持续“吸金”,四成份额达历史峰值</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">2</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">11</span><span class="time-info">02时18分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2244138" target="_blank" class="news-link">【每日收评】沪指连收10日阳线!机器人概念午后再度爆发,商业航天分歧加剧</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">航天 飞船 航空</div>
<div class="word-count ">2 条</div>
</div>
<div class="word-index">3/3</div>
</div>
<div class="news-item new">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num top">3</span><span class="time-info">02时18分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2244252" target="_blank" class="news-link">【数据看盘】超10亿元资金买入三花智控 机构抢筹商业航天概念股</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">2</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">澎湃新闻</span><span class="rank-num ">9</span><span class="time-info">02时18分</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32275680" target="_blank" class="news-link">“箭”已上弦:万亿商业航天产业迎来哪些新期待?</a>
</div>
</div>
</div>
</div>
<div class="topic-trend-section">
<div class="topic-trend-title">🔥 异常热度话题</div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">特朗普</div>
<div class="viral-topic-stats">
8条提及 · <span class="up">↑4%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>特朗普:普京说他被袭击了 我很生气</li><li>得知普京官邸遭袭 特朗普:很生气</li><li>俄罗斯称乌91架无人机袭击普京官邸,泽连斯基否认,特朗普“很生气”</li></ul></div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">韩国总统李在明将访华</div>
<div class="viral-topic-stats">
5条提及 · <span class="new">新话题</span> · <span class="level-high">高热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>韩国总统李在明将访华</li><li>韩国总统李在明将访华</li><li>韩国总统李在明将访华</li></ul></div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">金属全线回落</div>
<div class="viral-topic-stats">
3条提及 · <span class="up">↑3%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>金属全线回落,黄金跌破4500,白银跌超3.7%,现货钯金跌超11%,内盘碳酸锂、铂主力合约跌停</li><li>美股回调,金属全线回落,现货白银重挫8%,沪金跌破千元关口,原油反弹</li><li>金属全线回落,白银较日高暴跌16%,黄金逼近4300美元,矿业股普跌</li></ul></div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">玉茗茶骨</div>
<div class="viral-topic-stats">
3条提及 · <span class="up">↑3%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>于正 玉茗茶骨</li><li>玉茗茶骨 不用忍过多少集的剧</li><li>玉茗茶骨</li></ul></div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">哪些信息值得关注</div>
<div class="viral-topic-stats">
3条提及 · <span class="up">↑3%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>中国军号发布视频,解放军无人机俯瞰台北 101 大厦,哪些信息值得关注?</li><li>12 月 30 日围岛演习第 2 天,东部战区组织实弹射击,哪些信息值得关注?</li><li>辽宁辽阳一饭店火灾致 22 死事故调查报告发布,40 名公职人员被问责,哪些信息值得关注?</li></ul></div>
<div class="viral-topic-item">
<div class="viral-topic-header">
<div class="viral-topic-keyword">12</div>
<div class="viral-topic-stats">
3条提及 · <span class="up">↑3%</span> · <span class="level-mid">中热度</span>
</div>
</div>
<ul class="viral-sample-titles"><li>12 月 30 日围岛演习第 2 天,东部战区组织实弹射击,哪些信息值得关注?</li><li>如何评价 2025 年 12 月米哈游《绝区零》2.5 版本卡池,叶瞬光,照?</li><li>如何评价 2025 年 12 月米哈游《绝区零》2.5 版本剧情任务【微光引灯时】?</li></ul></div></div>
<div class="topic-trend-section">
<div class="topic-trend-title">✨ 关注话题趋势</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">自动驾驶</div>
<div class="word-count">3 条提及 <span style="color: #059669;">(↓100.00%)</span></div>
</div>
</div>
<div class="news-item">
<div class="news-content" style="padding-right: 0;">
<img src="data:image/png;base64,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" alt="自动驾驶 趋势图" style="width: 100%; height: auto;" />
</div>
</div>
</div></div>
</div>
<div class="footer">
<div class="footer-content">
</div>
</div>
</div>
<script>
async function saveAsImage() {
const button = event.target;
const originalText = button.textContent;
try {
button.textContent = '生成中...';
button.disabled = true;
window.scrollTo(0, 0);
// 等待页面稳定
await new Promise(resolve => setTimeout(resolve, 200));
// 截图前隐藏按钮
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'hidden';
// 再次等待确保按钮完全隐藏
await new Promise(resolve => setTimeout(resolve, 100));
const container = document.querySelector('.container');
const canvas = await html2canvas(container, {
backgroundColor: '#ffffff',
scale: 1.5,
useCORS: true,
allowTaint: false,
imageTimeout: 10000,
removeContainer: false,
foreignObjectRendering: false,
logging: false,
width: container.offsetWidth,
height: container.offsetHeight,
x: 0,
y: 0,
scrollX: 0,
scrollY: 0,
windowWidth: window.innerWidth,
windowHeight: window.innerHeight
});
buttons.style.visibility = 'visible';
const link = document.createElement('a');
const now = new Date();
const filename = `TrendRadar_热点新闻分析_${now.getFullYear()}${String(now.getMonth() + 1).padStart(2, '0')}${String(now.getDate()).padStart(2, '0')}_${String(now.getHours()).padStart(2, '0')}${String(now.getMinutes()).padStart(2, '0')}.png`;
link.download = filename;
link.href = canvas.toDataURL('image/png', 1.0);
// 触发下载
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
button.textContent = '保存成功!';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
} catch (error) {
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'visible';
button.textContent = '保存失败';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
}
}
async function saveAsMultipleImages() {
const button = event.target;
const originalText = button.textContent;
const container = document.querySelector('.container');
const scale = 1.5;
const maxHeight = 5000 / scale;
try {
button.textContent = '分析中...';
button.disabled = true;
// 获取所有可能的分割元素
const newsItems = Array.from(container.querySelectorAll('.news-item'));
const wordGroups = Array.from(container.querySelectorAll('.word-group'));
const newSection = container.querySelector('.new-section');
const errorSection = container.querySelector('.error-section');
const header = container.querySelector('.header');
const footer = container.querySelector('.footer');
// 计算元素位置和高度
const containerRect = container.getBoundingClientRect();
const elements = [];
// 添加header作为必须包含的元素
elements.push({
type: 'header',
element: header,
top: 0,
bottom: header.offsetHeight,
height: header.offsetHeight
});
// 添加错误信息(如果存在)
if (errorSection) {
const rect = errorSection.getBoundingClientRect();
elements.push({
type: 'error',
element: errorSection,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
}
// 按word-group分组处理news-item
wordGroups.forEach(group => {
const groupRect = group.getBoundingClientRect();
const groupNewsItems = group.querySelectorAll('.news-item');
// 添加word-group的header部分
const wordHeader = group.querySelector('.word-header');
if (wordHeader) {
const headerRect = wordHeader.getBoundingClientRect();
elements.push({
type: 'word-header',
element: wordHeader,
parent: group,
top: groupRect.top - containerRect.top,
bottom: headerRect.bottom - containerRect.top,
height: headerRect.height
});
}
// 添加每个news-item
groupNewsItems.forEach(item => {
const rect = item.getBoundingClientRect();
elements.push({
type: 'news-item',
element: item,
parent: group,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
});
});
// 添加新增新闻部分
if (newSection) {
const rect = newSection.getBoundingClientRect();
elements.push({
type: 'new-section',
element: newSection,
top: rect.top - containerRect.top,
bottom: rect.bottom - containerRect.top,
height: rect.height
});
}
// 添加footer
const footerRect = footer.getBoundingClientRect();
elements.push({
type: 'footer',
element: footer,
top: footerRect.top - containerRect.top,
bottom: footerRect.bottom - containerRect.top,
height: footer.offsetHeight
});
// 计算分割点
const segments = [];
let currentSegment = { start: 0, end: 0, height: 0, includeHeader: true };
let headerHeight = header.offsetHeight;
currentSegment.height = headerHeight;
for (let i = 1; i < elements.length; i++) {
const element = elements[i];
const potentialHeight = element.bottom - currentSegment.start;
// 检查是否需要创建新分段
if (potentialHeight > maxHeight && currentSegment.height > headerHeight) {
// 在前一个元素结束处分割
currentSegment.end = elements[i - 1].bottom;
segments.push(currentSegment);
// 开始新分段
currentSegment = {
start: currentSegment.end,
end: 0,
height: element.bottom - currentSegment.end,
includeHeader: false
};
} else {
currentSegment.height = potentialHeight;
currentSegment.end = element.bottom;
}
}
// 添加最后一个分段
if (currentSegment.height > 0) {
currentSegment.end = container.offsetHeight;
segments.push(currentSegment);
}
button.textContent = `生成中 (0/${segments.length})...`;
// 隐藏保存按钮
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'hidden';
// 为每个分段生成图片
const images = [];
for (let i = 0; i < segments.length; i++) {
const segment = segments[i];
button.textContent = `生成中 (${i + 1}/${segments.length})...`;
// 创建临时容器用于截图
const tempContainer = document.createElement('div');
tempContainer.style.cssText = `
position: absolute;
left: -9999px;
top: 0;
width: ${container.offsetWidth}px;
background: white;
`;
tempContainer.className = 'container';
// 克隆容器内容
const clonedContainer = container.cloneNode(true);
// 移除克隆内容中的保存按钮
const clonedButtons = clonedContainer.querySelector('.save-buttons');
if (clonedButtons) {
clonedButtons.style.display = 'none';
}
tempContainer.appendChild(clonedContainer);
document.body.appendChild(tempContainer);
// 等待DOM更新
await new Promise(resolve => setTimeout(resolve, 100));
// 使用html2canvas截取特定区域
const canvas = await html2canvas(clonedContainer, {
backgroundColor: '#ffffff',
scale: scale,
useCORS: true,
allowTaint: false,
imageTimeout: 10000,
logging: false,
width: container.offsetWidth,
height: segment.end - segment.start,
x: 0,
y: segment.start,
windowWidth: window.innerWidth,
windowHeight: window.innerHeight
});
images.push(canvas.toDataURL('image/png', 1.0));
// 清理临时容器
document.body.removeChild(tempContainer);
}
// 恢复按钮显示
buttons.style.visibility = 'visible';
// 下载所有图片
const now = new Date();
const baseFilename = `TrendRadar_热点新闻分析_${now.getFullYear()}${String(now.getMonth() + 1).padStart(2, '0')}${String(now.getDate()).padStart(2, '0')}_${String(now.getHours()).padStart(2, '0')}${String(now.getMinutes()).padStart(2, '0')}`;
for (let i = 0; i < images.length; i++) {
const link = document.createElement('a');
link.download = `${baseFilename}_part${i + 1}.png`;
link.href = images[i];
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// 延迟一下避免浏览器阻止多个下载
await new Promise(resolve => setTimeout(resolve, 100));
}
button.textContent = `已保存 ${segments.length} 张图片!`;
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
} catch (error) {
console.error('分段保存失败:', error);
const buttons = document.querySelector('.save-buttons');
buttons.style.visibility = 'visible';
button.textContent = '保存失败';
setTimeout(() => {
button.textContent = originalText;
button.disabled = false;
}, 2000);
}
}
document.addEventListener('DOMContentLoaded', function() {
window.scrollTo(0, 0);
});
</script>
</body>
</html>