哪吒监控面板默认主题美化代码2023版

本文提供了哪吒监控面板的样式定制指导,包括媒体查询、图标颜色、背景图片、导航栏样式、登录按钮、卡片样式、进度条动画和版权信息的调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

预览图

使用方法

打开哪吒监控面板控制后台后,选择设置,主题选择默认Default,然后将下面的自定义代码粘贴进去即可

<script>
    // 动画
    window.onload = function () {
        $('.nb-menu').css('visibility', 'visible');
        $('.footer').css('visibility', 'visible');
        $('.nb-menu .right.menu,.nb-menu .item')
            .transition({
                animation: 'fade down in',
                interval: 200,
            });
        $('.footer .container b,.footer .container small')
            .transition({
                animation: 'fade up in',
                interval: 200,
            });
        $('.accordion,.cards .card,table,.table tr,.service-status h2')
            .transition({
                animation: 'scale in',
                interval: 150
            });
        const cpuRollElements = document.querySelectorAll('.cpuroll');
        cpuRollElements.forEach((content) => {
            function updateContainerWidth() {
                const containerWidth = content.offsetWidth;
                content.style.setProperty('--container-width', `${containerWidth}px`);
            }
            updateContainerWidth();
            window.addEventListener('resize', updateContainerWidth);
        });
        $('.cpucontent').addClass("rollanimation");
    }
</script>
<style>
    /* 自定义字体 */
    @font-face {
        font-family: 'Harmony Hans';
        src: url(https://jsdelivr.panbaidu.cn/gh/baige007/ttf/HarmonyOS_Sans_SC_Medium.woff2) format('woff2');
    }

    * {
        font-family: 'Harmony Hans';
    }

    /* 背景图片 */
    body::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background: url(https://imgapi.cn/bing.php?rand=true) center/cover no-repeat;
}

    /* 屏幕适配 */
    @media (min-width: 766px) {
        .ui.container {
            width: 80%;
            margin-left: auto;
            margin-right: auto;
        }

        /* 表格样式 */
        table .visible.transition {
            display: table-row !important;
        }

        .ui.table thead th {
            backdrop-filter: blur(15px) brightness(110%);
            background-color: rgba(255, 255, 255, 0.4);
        }

        thead tr :first-child {
            border-radius: 1rem 0 0 1rem !important;
        }

        thead tr :last-child {
            border-radius: 0 1rem 1rem 0 !important;
        }

        /* 小卡片 */
        .ui .cards>.card {
            border-radius: 1rem;
            border: none !important;
            background-color: rgba(255, 255, 255, 0.7);
            padding: .25rem .25rem !important;
            margin: .5rem .3rem !important;
            visibility: hidden;
        }

        /* 小卡片头部调整 */
        .ui.card>.content>.header,
        .ui.cards>.card>.content>.header {
            padding-top: 0;
            display: flex;
            color: rgba(0, 0, 0, .85);
            align-items: center;
            padding-bottom: .2em;
            border-bottom: 1px solid rgba(0, 0, 0, .2);
        }

        .header_info {
            font-size: 1rem !important;
            line-height: 1rem !important;
            margin-top: .3rem !important;
padding-right:.38rem !important;
        }
    }

    @media (max-width: 766px) {

        .ui.menu>.container,
        .ui.menu>.grid {
            width: 100%;
            height: 100%;
        }

        /* 表格样式 */
        .ui.table thead {
            backdrop-filter: blur(15px) brightness(110%);
            background-color: rgba(255, 255, 255, 0.4);
        }

        thead {
            border-radius: 1rem !important;
        }

        thead tr {
            padding: 0 !important;
        }

        /* 小卡片 */
        .ui .cards>.card {
            border-radius: 1rem;
            background-color: rgba(255, 255, 255, 0.7);
        }

        /* 小卡片头部调整 */
        .ui.card>.content>.header,
        .ui.cards>.card>.content>.header {
            padding-top: 0.5rem;
            display: flex;
            color: rgba(0, 0, 0, .85);
            align-items: center;
            padding-bottom: .2em;
            border-bottom: 1px solid rgba(0, 0, 0, .2);
        }

        .header_info {
            font-size: 1rem !important;
            line-height: 1rem !important;
            padding-top: -.1rem !important;
padding-right:.38rem !important;
        }
    }

    /* 菜单颜色 */
    .ui.large.menu {
        backdrop-filter: blur(15px) brightness(110%);
        background-color: rgba(255, 255, 255, 0.5);
        border-radius: 0 0 1rem 1rem !important;
    }

    /* 初始隐藏元素 */
    .nb-menu,
    .nb-menu .right.menu,
    .nb-menu .item,
    .accordion,
    .footer,
    .footer .container b,
    .footer .container small,
    .table,
    .table tr,
    .service-status h2 {
        visibility: hidden;
    }


    .ui.menu .item:last-child {
        padding: 0 1.142em !important;
    }

    /* 登录按钮区域 */
    .ui.simple.dropdown {
        height: 100%;
        display: flex;
        flex-direction: row;
        justify-content: center;
        align-items: center;
    }

    /* 登录之后的下拉菜单 */
    .right.menu .menu {
        border-radius: 0 0 1rem 1rem !important;
        position: absolute;
        top: 0 !important;
        background-color: rgba(255, 255, 255, 0.5);
        backdrop-filter: blur(15px);
        padding: 0 0.3em !important;
    }

    /* 登录按钮颜色(需要使用配套自定义主题) */
    .amzayo-custom-button {
        backdrop-filter: blur(10px) brightness(110%) !important;
        background-color: #ffffff8f;
        color: #000000cf;
        border: 2px solid #ebe1d9;
        border-radius: 1rem;
        padding: 10px 20px;
        font-size: 16px;
        transition: all 0.5s;
    }

    .amzayo-custom-button:hover {
        background-color: #ff8457;
        color: #ffffffbd;
        font-weight: bolder;
    }

    /* 大卡片 */
    #app .ui.fluid.accordion {
        backdrop-filter: blur(15px) brightness(110%);
        background: rgba(255, 255, 255, 0.1) !important;
        border-radius: 1rem;
    }

    #app .ui.fluid.accordion {
        backdrop-filter: blur(15px) brightness(110%);
        background: rgba(255, 255, 255, 0.1) !important;
        border-radius: 1rem;
    }

    #app :last-child.accordion {
        margin-bottom: 0 !important;
    }

    /* 小卡片靠哪个方向对齐 */
    .cards {
        justify-content: center;
    }

    /* 取消下方注释调整下面的数字以调整卡片宽度(非移动端页面,移动端页面让它自适应吧) */
    /* .ui.card,
    .ui.cards>.card {
        width: 300px !important;
    } */

    /* 小卡片右上角的图标 */
    i.nezha-secondary-font.info.circle.icon {
        margin-left: auto;
        color: rgba(255, 153, 1, 0.65) !important;
    }

    /* 头部配置信息样式 */
    .header_info i {
        margin-top: .25rem;
        margin-right: .3rem;
        margin-left: .3rem;
    }

    /* 更多信息卡片 */
    .ui.content.popup {
        border: none !important;
        border-radius: 1rem;
        margin: 0;
        padding: 1em !important;
        backdrop-filter: blur(15px) brightness(110%);
        background-color: rgba(251, 251, 251, 0.8) !important;
        width: max-content;
        height: max-content;
    }

    /* 小三角 */
    .popup:before {
        backdrop-filter: blur(15px) brightness(110%);
        background-color: rgba(251, 251, 251, 0.8) !important;
        z-index: 9999 !important;
        border: none !important;
    }

    .ui.bottom.popup:before {
        clip-path: polygon(0 0, 100% 0, 50% 50%, 0 100%);
    }

    .ui.top.popup:before {
        clip-path: polygon(100% 100%, 0% 100%, 100% 0);
    }

    /* 进度条圆角和颜色 */
    .ui.progress {
        border-radius: 50rem;
        height: 1.5rem;
    }

    /* 卡片内间距,如需调整小卡片高度,可以修改下面的2rem的数字 */
    .status.cards .wide.column {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        height: 2rem !important;
    }

    .bi::before,
    [class^="bi-"]::before,
    [class*=" bi-"]::before {
        vertical-align: middle;
        margin-bottom: .2rem;
    }

    /* 状态进度条 */
    .card .bar {
        height: 1.5rem;
    }

    .card .bar small {
        vertical-align: super;
        line-height: 1.5rem;
    }

    .card .ui.progress .bar {
        min-width: 1.8em !important;
        border-radius: 13px;
        line-height: 1.65em;
        height: 1.5rem;
    }

    table .ui.progress .bar {
        border-radius: 13px;
    }

    /* 正常状态进度条颜色 */
    .ui.progress.fine .bar {
        background-color: rgb(0, 157, 255) !important;
    }

    /*有点累状态进度条颜色 */
    .ui.progress.warning .bar {
        background-color: #ff7700 !important;
    }

    /*高负载状态进度条颜色 */
    .ui.progress.error .bar {
        background-color: #e41e10 !important;
    }

    /* 离线状态进度条颜色 */
    .ui.progress.offline .bar {
        background-color: #000 !important;
    }

    /* 上传下载图标颜色 */
    i.arrow.alternate.circle.down.outline.icon {
        color: rgb(0, 157, 255);
    }

    i.arrow.alternate.circle.up.outline.icon {
        color: #ff0000;
    }

    /*服务状态*/
    .service-status .good {
        background-color: rgb(33 186 69) !important;
    }

    /* 服务页面大表格背景 */
    .table {
        backdrop-filter: blur(15px) brightness(110%);
        background: rgba(255, 255, 255, 0.1) !important;
        border-radius: 1rem !important;
    }

    /* 循环流量统计标题 */
    .service-status h2 {
        backdrop-filter: blur(15px) brightness(110%);
        background-color: rgba(255, 255, 255, 0.5);
        border-radius: 1rem !important;
        margin: 0 !important;
    }

    /*底部*/
    .footer {
        backdrop-filter: blur(15px) brightness(110%);
        background-color: rgba(255, 255, 255, 0.5) !important;
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        border-radius: 1rem 1rem 0 0 !important;
    }

    .footer .container,
    .footer .container a {
        color: rgb(0, 0, 0);
        transition: all 0.5s;
    }

    .footer .container a:hover {
        color: #ff8457;
    }

    /* 提示消息 */
    .floating.message.success {
        backdrop-filter: blur(15px) brightness(110%);
        background-color: rgba(255, 255, 255, 0.5);
        border: 3px solid rgba(255.255.255.0.5);
        border-radius: 1rem !important;
        color: black;
        box-shadow: 0 0 15px rgba(1, 132, 255, 0.65);
    }

    .floating.message.success .header {
        color: black;
    }

    .floating.message.warning {
        backdrop-filter: blur(15px) brightness(110%);
        background-color: rgba(255, 255, 255, 0.5);
        border: 1px solid rgba(255.255.255.0.5);
        border-radius: 1rem !important;
        color: black;
        box-shadow: 0 0 15px rgba(255, 153, 1, 0.65);
    }

    .floating.message.warning .header {
        color: black;
    }

    .cpucontent {
        display: inline-block;
    }

    .rollanimation {
        animation: scroll 20s cubic-bezier(.3, 0, .7, 1) infinite;
    }

    @keyframes scroll {

        0%,
        15%,
        100% {
            transform: translateX(0%);
        }

        50% {
            transform: translateX(calc(-100% + var(--container-width)));
        }

        65% {
            transform: translateX(calc(-100% + var(--container-width)));
        }
    }
</style>
### 抓取豆瓣哪吒2电影评论的Python爬虫代码 为了实现抓取豆瓣上关于《哪吒2》电影的评论,可以按照以下方法构建一个功能完善的Python爬虫程序。以下是详细的解决方案: #### 1. 安装必要的库 在开始之前,需要确保已安装所需的依赖库。可以通过以下命令完成安装[^2]: ```bash pip install requests beautifulsoup4 selenium pandas -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 这些库的作用分别是: - `requests`:发送HTTP请求。 - `beautifulsoup4`:解析HTML文档。 - `selenium`:模拟浏览器行为以绕过反爬虫机制。 - `pandas`:处理和存储数据。 --- #### 2. 使用Selenium模拟浏览器访问 由于豆瓣网站存在一定的反爬虫机制,直接使用`requests`可能无法正常获取页面内容。因此,推荐使用`Selenium`来模拟真实用户的操作。以下是初始化Selenium的部分代码: ```python from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from selenium.webdriver.common.by import By import time # 初始化Chrome驱动 (需提前下载对应本的chromedriver) chrome_service = ChromeService(executable_path="path/to/chromedriver") # 替换为实际路径 driver = webdriver.Chrome(service=chrome_service) # 打开目标网页 url = "https://movie.douban.com/subject/{movie_id}/comments".format(movie_id="example_movie_id") driver.get(url) # 等待页面加载完毕 time.sleep(3) ``` 注意:需要替换`{movie_id}`为目标电影的实际ID号(可通过浏览豆瓣找到)。对于《哪吒2》,可以在其详情页URL中提取对应的ID。 --- #### 3. 解析影评数据 通过`BeautifulSoup`解析HTML源码中的影评信息。假设每条评论都位于特定的标签下,则可以用以下方式提取所需字段: ```python from bs4 import BeautifulSoup # 获取当前页面的HTML内容 html_content = driver.page_source soup = BeautifulSoup(html_content, 'html.parser') # 提取所有影评条目 reviews = [] for item in soup.find_all('div', class_='comment-item'): username = item.find('span', class_='comment-info').a.text.strip() # 用户名 rating = item.find('span', attrs={'class': lambda x: x and 'allstar' in x})['title'] if item.find('span', attrs={'class': lambda x: x and 'allstar' in x}) else None # 评分 comment_time = item.find('span', class_='comment-time')['title'].strip() # 发表时间 content = item.find('span', class_='short').text.strip() # 影评正文 reviews.append({ 'username': username, 'rating': rating, 'comment_time': comment_time, 'content': content }) print(reviews[:5]) # 输出前几条评论验证效果 ``` --- #### 4. 处理分页逻辑 通常情况下,影评会分布在多个页面上。可以通过点击“下一页”按钮自动跳转至下一组评论: ```python while True: try: next_button = driver.find_element(By.LINK_TEXT, '后页>') next_button.click() time.sleep(3) # 延迟等待新页面加载 html_content = driver.page_source soup = BeautifulSoup(html_content, 'html.parser') for item in soup.find_all('div', class_='comment-item'): # 同样逻辑继续收集数据... pass except Exception as e: print("No more pages or error occurred:", str(e)) break ``` --- #### 5. 数据存储 最后将采集的数据保存到CSV文件以便进一步分析: ```python import pandas as pd df_reviews = pd.DataFrame(reviews) output_file = "douban_nnez_comments.csv" df_reviews.to_csv(output_file, index=False, encoding='utf-8-sig') # UTF-8编码防止中文乱码 print(f"Data saved to {output_file}") ``` --- ### 注意事项 - **合法性声明**:爬取公开网络数据时应遵循相关法律法规及网站的服务条款。过度频繁地发起请求可能会被封禁IP地址。 - **动态调整参数**:某些细节如CSS选择器、XPath表达式等可能因豆瓣更新而改变,请及时调试修改相应部分[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oocun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值