<!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">19 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">02-16 02:29</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 hot">13 条</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 top">1</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765753" target="_blank" class="news-link">“SaaS已死,SaaS到来”!Altman预言“全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 top">1</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32608237" target="_blank" class="news-link">Seedance一骑绝尘背后:中国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 top">2</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2290600" target="_blank" class="news-link">AI遇上最强春节档 Token通胀已成必然?</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 top">3</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32610730" target="_blank" class="news-link">从“玩具”到“工具”,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 high">4</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32617346" target="_blank" class="news-link">国铁集团:“春运绿皮车严重超员视频”不实,系历史画面拼凑加AI</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">6</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">华尔街见闻</span><span class="rank-num high">5</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765760" target="_blank" class="news-link">Stratechery创始人深度访谈:预警2029年大规模“芯片荒”,SaaS模式将终结,广告才是AI终极商业闭环</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">7</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">华尔街见闻</span><span class="rank-num ">6</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765746" target="_blank" class="news-link">影响万亿资本的市场叙事争夺:一边是“AI颠覆一切”,一边是“AI回报不够”</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">8</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">6</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2290485" target="_blank" class="news-link">美国被曝对委内瑞拉军事行动中使用人工智能模型</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">9</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时29分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2290580" target="_blank" class="news-link">AI电荒把燃气轮机“捧上C位” 龙头企业:需求极其旺盛 交付排到2030年</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">10</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">澎湃新闻</span><span class="rank-num ">10</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32615186" target="_blank" class="news-link">美军被曝在委内瑞拉军事行动中使用AI模型,开发公司回应质疑</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">11</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">澎湃新闻</span><span class="rank-num ">17</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32610345" target="_blank" class="news-link">AI“卷”春节?智能点单、做拜年视频、抢红包,各凭本事吸引用户</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">12</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">贴吧</span><span class="rank-num ">18</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28350710&amp;topic_name=AI%E5%A5%B3%E5%89%AF%E6%80%BB%E5%9B%A0%E5%8F%8D%E8%89%B2%E6%83%85%E8%A2%AB%E7%82%92%E9%B1%BF%E9%B1%BC" target="_blank" class="news-link">AI女副总因反色情被炒鱿鱼</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">13</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">贴吧</span><span class="rank-num ">22</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28350684&amp;topic_name=AI%E6%97%A0%E8%A7%86%E7%89%88%E6%9D%83%2C%E8%80%81%E5%A4%96%E9%9B%86%E7%81%AB%E5%9B%B4%E6%AE%B4" 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">谷歌 google</div>
<div class="word-count ">2 条</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 ">7</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2290476" target="_blank" class="news-link">谷歌债券遭全球疯抢 但保护条款“缺席”引发隐忧</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 ">16</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://www.zhihu.com/question/2004209286281205228" target="_blank" class="news-link">消息称 Anthropic 员工效率远超谷歌,入职需「杀死自我」,这种企业文化有效吗?</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 ">16</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32610419" 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">gemini deepmind claude openai</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">02时29分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3765755" target="_blank" class="news-link">OpenAI高管:工程师变成“魔法师”,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">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 ">20</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://www.douyin.com/hot/2401648" 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">航天 飞船</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 top">3</span><span class="time-info">02时29分</span>
</div>
<div class="news-title"><a href="https://s.weibo.com/weibo?q=%23%E8%88%AA%E5%A4%A9%E4%BA%BA%E4%BB%A5%E5%9C%86%E6%BB%A1%E6%88%90%E5%8A%9F%E7%BB%99%E5%85%A8%E5%9B%BD%E4%BA%BA%E6%B0%91%E6%8B%9C%E5%B9%B4%23&t=31&band_rank=3&Refer=top" 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">
11条提及 · <span class="up">↑11%</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>鲁比奥:不与中国对话是失职</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>市场监管总局约谈阿里巴巴、抖音、百度、腾讯、京东、美团、淘宝闪购等平台企业</li><li>市场监管总局约谈阿里巴巴、抖音、百度、腾讯、京东、美团、淘宝闪购等平台企业</li><li>市场监管总局约谈阿里巴巴、抖音、百度等 7 家平台企业,能治住大厂们「内卷式」竞争的老毛病吗?</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>市场监管总局约谈阿里巴巴、抖音、百度等 7 家平台企业,能治住大厂们「内卷式」竞争的老毛病吗?</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>