Files
TrendRadar/output/2025年11月25日/html/当日汇总.html
T

1480 lines
79 KiB
HTML

<!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, #4f46e5 0%, #7c3aed 100%);
color: white;
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;
}
.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">291 条</span>
</div>
<div class="info-item">
<span class="info-label">热点新闻</span>
<span class="info-value">53 条</span>
</div>
<div class="info-item">
<span class="info-label">生成时间</span>
<span class="info-value">11-25 19:20</span>
</div>
</div>
</div>
<div class="content">
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">美国 日本 澳大利亚</div>
<div class="word-count hot">23 条</div>
</div>
<div class="word-index">1/8</div>
</div>
<div class="news-item ">
<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">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32033959" target="_blank" class="news-link">详讯丨习近平同美国总统特朗普通电话</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">2</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">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3760029" target="_blank" class="news-link">习近平同美国总统特朗普通电话</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">3</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">凤凰网</span><span class="rank-num top">3-5</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://news.ifeng.com/c/8oZRXCXm26Y" target="_blank" class="news-link">暂停日本电影在华上映审批,中方回应</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">1</span><span class="time-info">19时20分</span>
</div>
<div class="news-title"><a href="https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28347510&amp;amp;topic_name=%E6%97%A5%E6%9C%AC%E8%87%B4%E5%87%BD%E8%81%94%E5%90%88%E5%9B%BD%2C%E8%A3%85%E6%A8%A1%E4%BD%9C%E6%A0%B7%E7%BB%99%E8%B0%81%E7%9C%8B" target="_blank" class="news-link">日本致函联合国,装模作样给谁看</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">19时20分</span>
</div>
<div class="news-title"><a href="https://news.ifeng.com/c/8oZXSgs1vde" target="_blank" class="news-link">“中美‘默契’敲打日本:老实点”</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">6</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">微博</span><span class="rank-num top">1-7</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://s.weibo.com/weibo?q=%23%E4%B8%AD%E6%96%B9%E6%9A%82%E5%81%9C%E6%97%A5%E6%9C%AC%E7%94%B5%E5%BD%B1%E5%9C%A8%E5%8D%8E%E4%B8%8A%E6%98%A0%E5%AE%A1%E6%89%B9%23&amp;t=31&amp;band_rank=7&amp;Refer=top" target="_blank" class="news-link">中方暂停日本电影在华上映审批</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">7</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">百度热搜</span><span class="rank-num high">4-18</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E6%8D%9F%E5%A4%B1%E6%83%A8%E9%87%8D%EF%BC%81%E6%97%A5%E6%9C%AC%E9%85%92%E5%BA%97%E7%BB%8F%E8%90%A5%E8%80%85%E7%A7%B0%E4%B8%87%E5%88%86%E5%A7%94%E5%B1%88" target="_blank" class="news-link">损失惨重!日本酒店经营者称万分委屈</a>
</div>
</div>
</div>
<div class="news-item ">
<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">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32033713" target="_blank" class="news-link">“普京愿望清单”还是“美国调停方案”,“28点”为何在美国政坛引发混乱?</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">9</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">凤凰网</span><span class="rank-num ">6</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://news.ifeng.com/c/8oZSoYJhGZl" target="_blank" class="news-link">日本有人声称中华人民共和国没资格讨论台湾问题,外交部驳斥</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">10</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">百度热搜</span><span class="rank-num ">7</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E8%AD%A6%E6%83%95%EF%BC%81%E6%97%A5%E6%9C%AC%E6%88%96%E6%88%90%E4%B8%BA%E4%BA%9A%E6%B4%B2%E6%9C%80%E5%8D%B1%E9%99%A9%E7%9A%84%E5%9B%BD%E5%AE%B6" target="_blank" class="news-link">警惕!日本或成为亚洲最危险的国家</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">11</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">7-8</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2210022" target="_blank" class="news-link">一文盘点“聪明钱”动向:美国对冲基金现在都在做空哪些股票?</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">12</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">10-20</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7575792627426230281/" target="_blank" class="news-link">牛弹琴:日本又迈出凶险一步</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">13</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">澎湃新闻</span><span class="rank-num ">13-14</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32032205" target="_blank" class="news-link">日本政府官员透露:大熊猫租借项目已经停止</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">14</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">百度热搜</span><span class="rank-num ">14-20</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E6%96%B0%E5%8D%8E%E7%A4%BE%EF%BC%9A%E6%97%A5%E6%9C%AC%E5%B7%B2%E7%BB%8F%E7%AB%99%E5%9C%A8%E5%8D%B1%E9%99%A9%E7%9A%84%E6%82%AC%E5%B4%96%E8%BE%B9" target="_blank" class="news-link">新华社:日本已经站在危险的悬崖边</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">15</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">bilibili 热搜</span><span class="rank-num ">22</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://search.bilibili.com/all?keyword=%E6%97%A5%E6%9C%AC%E6%98%AF%E5%A6%82%E4%BD%95%E7%96%AF%E7%8B%82%E6%89%A9%E5%86%9B%E7%9A%84" target="_blank" class="news-link">日本是如何疯狂扩军的</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">16</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">华尔街见闻</span><span class="rank-num ">6</span><span class="time-info">18时55分</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3760011" target="_blank" class="news-link">“跌疯了”的币圈“阴谋论满天飞”:美国政府“抢钱”,华尔街“做空”,甚至是“摩根大通大战特朗普”</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">17</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">14</span><span class="time-info">19时20分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7576440479848480814/" target="_blank" class="news-link">日本民众再集会要求高市撤回妄言</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">18</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">19</span><span class="time-info">18时55分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7576140453448597531/" target="_blank" class="news-link">中方回应暂缓日本电影上映</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">19</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">微博</span><span class="rank-num ">19</span><span class="time-info">19时20分</span>
</div>
<div class="news-title"><a href="https://s.weibo.com/weibo?q=%23%E6%97%A5%E6%9C%AC%E9%92%9A%E6%9D%90%E6%96%99%E7%BA%A6%E5%8F%AF%E5%88%B6%E9%80%A06%E5%8D%83%E6%9E%9A%E6%A0%B8%E5%BC%B9%23&amp;t=31&amp;band_rank=19&amp;Refer=top" target="_blank" class="news-link">日本钚材料约可制造6千枚核弹</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">20</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">24</span><span class="time-info">18时55分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7576578196187909673/" target="_blank" class="news-link">学者:日本03式防空导弹性能落后</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">21</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">25</span><span class="time-info">19时20分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7576525877022821898/" target="_blank" class="news-link">学者:日本储存过量钚制造了两大风险</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">22</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">百度热搜</span><span class="rank-num ">28</span><span class="time-info">18时55分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E7%BE%8E%E5%9B%BD%E4%BF%84%E5%8B%92%E5%86%88%E5%B7%9E%E5%AE%A3%E5%B8%83%E8%BF%9B%E5%85%A5%E7%B4%A7%E6%80%A5%E7%8A%B6%E6%80%81" target="_blank" class="news-link">美国俄勒冈州宣布进入紧急状态</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">23</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">百度热搜</span><span class="rank-num ">30</span><span class="time-info">19时20分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E6%97%A5%E6%9C%AC%E4%B8%BA%E4%BD%95%E5%AF%B9%E5%8F%B0%E6%B9%BE%E5%BF%B5%E5%BF%B5%E4%B8%8D%E5%BF%98" 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 hot">15 条</div>
</div>
<div class="word-index">2/8</div>
</div>
<div class="news-item ">
<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">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7576574890636148799/" target="_blank" class="news-link">一名中国游客在日本关西机场坠亡</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">2</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">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E5%A4%A7%E7%B1%B3%E5%87%BA%E7%8E%B0%E5%9C%A8%E6%97%A5%E6%9C%AC%E5%95%86%E5%BA%97%E6%98%BE%E8%91%97%E4%BD%8D%E7%BD%AE" target="_blank" class="news-link">中国大米出现在日本商店显著位置</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">3</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num high">4-5</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7576096578046951460/" target="_blank" class="news-link">南海舰队:中国军人只有战死没有吓死</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">4</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">贴吧</span><span class="rank-num high">4-5</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28347467&amp;amp;topic_name=%E4%B8%AD%E5%9B%BD%E6%92%A4%E5%9B%9E%E5%A4%A7%E7%86%8A%E7%8C%AB%2C%E6%97%A5%E7%BD%91%E6%80%92%E8%B5%9E%E6%9C%AC%E5%9C%9F%E6%A3%95%E7%86%8A" target="_blank" class="news-link">中国撤回大熊猫,日网怒赞本土棕熊</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">5</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">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.douyin.com/hot/2317091" target="_blank" class="news-link">妈妈版舌尖上的中国</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">6</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">知乎</span><span class="rank-num ">7</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.zhihu.com/question/1975656579337573667" target="_blank" class="news-link">国外游戏里对中国元素的运用,是否还停留在「旗袍、功夫、红灯笼」的刻板印象里?如果是的话为什么?</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">7</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">8-16</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7576520038518099462/" target="_blank" class="news-link">唐驳虎:中国用20天完成一次壮举</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">8</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">澎湃新闻</span><span class="rank-num ">9</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32031997" target="_blank" class="news-link">锐评|距中国台湾110公里处部署导弹,日本突破“专守防卫”界限</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">9</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">百度热搜</span><span class="rank-num ">9-12</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E9%99%88%E7%99%BE%E7%A5%A5%EF%BC%9A%E4%B8%AD%E5%9B%BD%E4%B8%80%E8%AE%B2%E7%90%89%E7%90%83%E7%8B%AC%E7%AB%8B%E6%97%A5%E6%9C%AC%E5%B0%B1%E8%84%9A%E8%BD%AF" target="_blank" class="news-link">陈百祥:中国一讲琉球独立日本就脚软</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">10</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">华尔街见闻</span><span class="rank-num ">9-10</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3760015" target="_blank" class="news-link">中国真的“消费不足”吗?主要还是太卷</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">11</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">百度热搜</span><span class="rank-num ">10-12</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E7%94%B7%E5%AD%90%E6%97%A5%E6%9C%AC%E6%97%85%E6%B8%B8%E5%9C%A8%E6%9C%BA%E5%9C%BA%E5%9D%A0%E4%BA%A1" target="_blank" class="news-link">中国男子日本旅游在机场坠亡</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">12</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">微博</span><span class="rank-num ">11-15</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://s.weibo.com/weibo?q=%23%E4%B8%AD%E5%9B%BD%E4%B8%80%E7%94%B7%E5%AD%90%E5%9C%A8%E6%97%A5%E6%9C%AC%E5%85%B3%E8%A5%BF%E6%9C%BA%E5%9C%BA%E5%9D%A0%E4%BA%A1%23&amp;t=31&amp;band_rank=15&amp;Refer=top" target="_blank" class="news-link">中国一男子在日本关西机场坠亡</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">13</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">澎湃新闻</span><span class="rank-num ">14-15</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32037206" target="_blank" class="news-link">韩国“国民爷爷”李顺载去世,曾在中国金鸡百花电影节获奖</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">14</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">百度热搜</span><span class="rank-num ">27</span><span class="time-info">18时55分</span>
</div>
<div class="news-title"><a href="https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%BC%BA%E5%9C%B0%E7%BA%A7%E5%B8%82+%E6%AD%A3%E5%9C%A8%E6%8B%BC%E5%91%BD%E5%BB%BA%E5%A4%A7%E5%AD%A6" target="_blank" class="news-link">中国最强地级市 正在拼命建大学</a>
</div>
</div>
</div>
<div class="news-item new">
<div class="news-number">15</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">今日头条</span><span class="rank-num ">29</span><span class="time-info">19时20分</span>
</div>
<div class="news-title"><a href="https://www.toutiao.com/trending/7576489239458857011/" 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">ai 人工智能</div>
<div class="word-count warm">6 条</div>
</div>
<div class="word-index">3/8</div>
</div>
<div class="news-item ">
<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">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.zhihu.com/question/1976013755256153204" target="_blank" class="news-link">35 岁大厂程序员,花了 3 周写的核心算法,AI 用 10 分钟复现了更优版本,我 10 年的经验到底值多少钱?</a>
</div>
</div>
</div>
<div class="news-item ">
<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-8</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2210415" target="_blank" class="news-link">AI需求引爆!一周涨30%,存储产业链涨价扩展到SSD</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">3</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">6-7</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2210084" target="_blank" class="news-link">硬科技迎资金活水,首批7只双创人工智能ETF周五齐发</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">4</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">11</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2210324" target="_blank" class="news-link">【每日收评】三大指数放量反弹!全市场连续两日逾百股涨超9%,AI概念股再度活跃</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">5</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">贴吧</span><span class="rank-num ">25-26</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28347461&amp;amp;topic_name=%E4%B8%A4%E7%BE%8E%E5%88%80%E9%80%BC%E7%96%AFAI%21%E6%80%92%E8%A6%81%E6%8A%A5%E5%AE%98%E5%91%8A%E5%85%AC%E5%8F%B8" 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 ">19</span><span class="time-info">19时20分</span>
</div>
<div class="news-title"><a href="https://www.zhihu.com/question/1976610994328445009" target="_blank" class="news-link">如何评价华为 Mate 80 系列首发搭载 A2A 系统级 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 ">3 条</div>
</div>
<div class="word-index">4/8</div>
</div>
<div class="news-item ">
<div class="news-number">1</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">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3760049" target="_blank" class="news-link">准时上演!“大空头”大战英伟达,“AI泡沫”论战开启</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">2</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">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2210305" target="_blank" class="news-link">AI芯片竞赛升级!Meta据悉转向谷歌TPU 英伟达“王位”不稳?</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">3</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">华尔街见闻</span><span class="rank-num ">7-8</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://wallstreetcn.com/articles/3760047" target="_blank" class="news-link">趁Gemini 3“东风”,“谷歌链”挑战“英伟达链”,颠覆AI交易格局</a>
</div>
</div>
</div>
</div>
<div class="word-group">
<div class="word-header">
<div class="word-info">
<div class="word-name">谷歌 google gemini deepmind</div>
<div class="word-count ">2 条</div>
</div>
<div class="word-index">5/8</div>
</div>
<div class="news-item ">
<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-6</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2209826" target="_blank" class="news-link">垂直整合程度最高的AI大厂!“新王”谷歌登基:整个硅谷都在颤抖?</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">2</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">财联社热门</span><span class="rank-num ">12-13</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2210371" target="_blank" class="news-link">【焦点复盘】创业板指高开高走涨近2%,谷歌产业链获持续热捧,福建本地股卷土重来</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">6/8</div>
</div>
<div class="news-item ">
<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-5</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://s.weibo.com/weibo?q=%23%E4%B8%AD%E5%9B%BD%E6%9C%BA%E5%99%A8%E4%BA%BA%E6%88%96%E5%B0%86%E8%83%BD%E5%90%83%E5%87%BA%E8%BE%A3%E6%A4%92%E6%9C%89%E5%A4%9A%E8%BE%A3%23&amp;t=31&amp;band_rank=5&amp;Refer=top" target="_blank" class="news-link">中国机器人或将能吃出辣椒有多辣</a>
</div>
</div>
</div>
<div class="news-item ">
<div class="news-number">2</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">澎湃新闻</span><span class="rank-num ">18</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://m.thepaper.cn/newsDetail_forward_32031326" 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">7/8</div>
</div>
<div class="news-item ">
<div class="news-number">1</div>
<div class="news-content">
<div class="news-header">
<span class="source-name">知乎</span><span class="rank-num ">8</span><span class="time-info">18时55分~19时20分</span><span class="count-info">2次</span>
</div>
<div class="news-title"><a href="https://www.zhihu.com/question/1976380708353234914" target="_blank" class="news-link">摩尔线程中签率仅为 0.024%,创下了哪些 IPO 记录,其与沐曦股份有何区别,他们能重振芯片板块么?</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">8/8</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">19时20分</span>
</div>
<div class="news-title"><a href="https://www.cls.cn/detail/2210428" target="_blank" class="news-link">【数据看盘】三家实力游资豪掷近4亿买入光库科技 多路资金激烈博弈巨人网络</a>
</div>
</div>
</div>
</div>
<div class="new-section">
<div class="new-section-title">本次新增热点 (共 9 条)</div>
<div class="new-source-group">
<div class="new-source-title">今日头条 · 3条</div>
<div class="new-item">
<div class="new-item-number">1</div>
<div class="new-item-rank ">14</div>
<div class="new-item-content">
<div class="new-item-title"><a href="https://www.toutiao.com/trending/7576440479848480814/" target="_blank" class="news-link">日本民众再集会要求高市撤回妄言</a>
</div>
</div>
</div>
<div class="new-item">
<div class="new-item-number">2</div>
<div class="new-item-rank ">25</div>
<div class="new-item-content">
<div class="new-item-title"><a href="https://www.toutiao.com/trending/7576525877022821898/" target="_blank" class="news-link">学者:日本储存过量钚制造了两大风险</a>
</div>
</div>
</div>
<div class="new-item">
<div class="new-item-number">3</div>
<div class="new-item-rank ">29</div>
<div class="new-item-content">
<div class="new-item-title"><a href="https://www.toutiao.com/trending/7576489239458857011/" target="_blank" class="news-link">台退将怒批高市早苗踩到中国红线</a>
</div>
</div>
</div>
</div>
<div class="new-source-group">
<div class="new-source-title">百度热搜 · 1条</div>
<div class="new-item">
<div class="new-item-number">1</div>
<div class="new-item-rank ">30</div>
<div class="new-item-content">
<div class="new-item-title"><a href="https://www.baidu.com/s?wd=%E6%97%A5%E6%9C%AC%E4%B8%BA%E4%BD%95%E5%AF%B9%E5%8F%B0%E6%B9%BE%E5%BF%B5%E5%BF%B5%E4%B8%8D%E5%BF%98" target="_blank" class="news-link">日本为何对台湾念念不忘</a>
</div>
</div>
</div>
</div>
<div class="new-source-group">
<div class="new-source-title">财联社热门 · 1条</div>
<div class="new-item">
<div class="new-item-number">1</div>
<div class="new-item-rank ">13</div>
<div class="new-item-content">
<div class="new-item-title"><a href="https://www.cls.cn/detail/2210428" target="_blank" class="news-link">【数据看盘】三家实力游资豪掷近4亿买入光库科技 多路资金激烈博弈巨人网络</a>
</div>
</div>
</div>
</div>
<div class="new-source-group">
<div class="new-source-title">凤凰网 · 1条</div>
<div class="new-item">
<div class="new-item-number">1</div>
<div class="new-item-rank high">4</div>
<div class="new-item-content">
<div class="new-item-title"><a href="https://news.ifeng.com/c/8oZXSgs1vde" target="_blank" class="news-link">“中美‘默契’敲打日本:老实点”</a>
</div>
</div>
</div>
</div>
<div class="new-source-group">
<div class="new-source-title">贴吧 · 1条</div>
<div class="new-item">
<div class="new-item-number">1</div>
<div class="new-item-rank top">1</div>
<div class="new-item-content">
<div class="new-item-title"><a href="https://tieba.baidu.com/hottopic/browse/hottopic?topic_id=28347510&amp;amp;topic_name=%E6%97%A5%E6%9C%AC%E8%87%B4%E5%87%BD%E8%81%94%E5%90%88%E5%9B%BD%2C%E8%A3%85%E6%A8%A1%E4%BD%9C%E6%A0%B7%E7%BB%99%E8%B0%81%E7%9C%8B" target="_blank" class="news-link">日本致函联合国,装模作样给谁看</a>
</div>
</div>
</div>
</div>
<div class="new-source-group">
<div class="new-source-title">微博 · 1条</div>
<div class="new-item">
<div class="new-item-number">1</div>
<div class="new-item-rank ">19</div>
<div class="new-item-content">
<div class="new-item-title"><a href="https://s.weibo.com/weibo?q=%23%E6%97%A5%E6%9C%AC%E9%92%9A%E6%9D%90%E6%96%99%E7%BA%A6%E5%8F%AF%E5%88%B6%E9%80%A06%E5%8D%83%E6%9E%9A%E6%A0%B8%E5%BC%B9%23&amp;t=31&amp;band_rank=19&amp;Refer=top" target="_blank" class="news-link">日本钚材料约可制造6千枚核弹</a>
</div>
</div>
</div>
</div>
<div class="new-source-group">
<div class="new-source-title">知乎 · 1条</div>
<div class="new-item">
<div class="new-item-number">1</div>
<div class="new-item-rank ">19</div>
<div class="new-item-content">
<div class="new-item-title"><a href="https://www.zhihu.com/question/1976610994328445009" target="_blank" class="news-link">如何评价华为 Mate 80 系列首发搭载 A2A 系统级 AI 能力,对行业来说有何意义?</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="footer-content">
<span class="project-name">TrendRadar</span> 生成 ·
<a href="https://github.com/sansan0/TrendRadar" target="_blank" class="footer-link">
GitHub 开源项目
</a>
</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>