<!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">142 条</span>
</div>
<div class="info-item">
<span class="info-label">热点新闻</span>
<span class="info-value">7 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">02-06 09:42</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 ">2 条</div>
</div>
<div class="word-index">1/6</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 ">6</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2282228" target="_blank" class="news-link">软件股抛售“导火索”又发新品: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 ">20</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://www.douyin.com/hot/2390538" 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 ">1 条</div>
</div>
<div class="word-index">2/6</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">2</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2282247" target="_blank" class="news-link">马斯克再谈“太空GPU”畅想:36个月内太空会是部署AI的最便宜去处</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">英伟达 NVIDIA 黄仁勋</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">3/6</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 ">13</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2282311" target="_blank" class="news-link">全球最大矿业合并案告吹 英伟达新游戏显卡据传全面跳票 | 环球市场</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">谷歌 google</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">4/6</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 ">10</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765100" target="_blank" class="news-link">砸钱AI超谷歌!亚马逊今年支出指引2000亿意外爆表,盘后跳水超10% | 财报见闻</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">gemini deepmind claude openai</div>
<div class="word-count ">1 条</div>
</div>
<div class="word-index">5/6</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">09时42分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765096" target="_blank" class="news-link">擅长金融研究!Anthropic发布Claude Opus4.6,金融数据库FactSet、汤森路透持续重挫</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 ">1 条</div>
</div>
<div class="word-index">6/6</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 ">12</span><span class="time-info">09时42分</span>
</div>
<div class="news-title"><a href="https://www.zhihu.com/question/1994076629576675918" target="_blank" class="news-link">NASA 宣布阿耳忒弥斯 2 号将搭载 4 名航天员绕月飞行,此次任务有哪些值得关注?</a>
</div>
</div>
</div>
</div>
<div class="topic-trend-section">
<div class="topic-trend-title">🔥 异常热度话题</div>
<p style='color: #666; font-size: 14px;'>今日暂未检测到异常热度话题。</p></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">AMD</div>
<div class="word-count">9 条提及 <span style="color: #dc2626;">(↑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="AMD 趋势图" 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>