[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-settings":3,"tag-projects-beautifulsoup":48,"footer-friends":60,"tag-posts-beautifulsoup":73,"sidebar-tags":118,"sidebar-donations":263,"ad-sidebar_top":270,"ad-sidebar_mid":272,"ad-sidebar_bottom":274},{"alipayQr":4,"beianNumber":5,"commentsRequireApproval":6,"contactEmail":7,"copyrightNotice":5,"donationEnabled":6,"emailCodeExpireMinutes":8,"enableRegistration":6,"followBilibiliUrl":9,"followGithubUrl":10,"followQqGroup":11,"followQqQr":12,"followWechatQr":13,"footerHtml":5,"gaTrackingId":5,"heroEnabled":6,"heroSearchPlaceholder":5,"heroSubtitle":14,"heroTitle":15,"homeCategoryTabsCount":16,"homePageSize":17,"homeProjectsCount":18,"homeSpecialsCount":19,"homeToolsCount":18,"icpNumber":20,"inviteDefaultQuota":21,"inviteRequired":22,"logoUrl":23,"mailPasswordChangedBody":24,"mailPasswordChangedSubject":25,"mailRegisterCodeBody":26,"mailRegisterCodeSubject":27,"mailResetCodeBody":28,"mailResetCodeSubject":29,"mailWelcomeBody":30,"mailWelcomeSubject":31,"miniappAppid":32,"miniappEnabled":6,"profileAvatar":33,"profileBio":34,"profileName":35,"profileWechatQr":36,"promoteEnabled":6,"promoteNotice":5,"promoteWechat":5,"requireEmailVerify":6,"sectionArticleEnabled":6,"sectionArticleTitle":37,"sectionProjectsEnabled":6,"sectionProjectsTitle":38,"sectionSpecialEnabled":6,"sectionSpecialTitle":39,"sectionToolsEnabled":6,"sectionToolsTitle":40,"seoAuthor":41,"seoBaiduTongjiId":5,"seoBaiduVerify":5,"seoCanonicalEnabled":6,"seoDescription":42,"seoGoogleVerify":5,"seoKeywords":5,"seoOgImage":23,"seoRobots":5,"seoSitemapEnabled":6,"seoTitle":43,"seoTitleTemplate":44,"showHeroStats":6,"showSidebarDonations":6,"showSidebarFeedback":6,"showSidebarFollowUs":6,"showSidebarProfile":6,"showSidebarTagCloud":6,"siteDescription":42,"siteFavicon":45,"siteName":41,"siteUrl":46,"wechatQr":47},"\u002Fstatic\u002Fuploads\u002Fimages\u002F2026\u002F09\u002F29\u002F1790628031878385634.png","","true","enghin110@qq.com","10","https:\u002F\u002Fspace.bilibili.com\u002F470616503","https:\u002F\u002Fgithub.com\u002Fitwuge","606262780","\u002Fstatic\u002Fuploads\u002Fimages\u002F2026\u002F09\u002F29\u002F1790627647190853446.png","\u002Fstatic\u002Fuploads\u002Fimages\u002F2026\u002F09\u002F29\u002F1790627638856258082.jpg","精选 AI 教程、开源项目与实用工具，助你从入门到精通","探索人工智能的无限可能","6","7","4","3","赣ICP备2023014108号-2","5","false","\u002Fimages\u002Flogo\u002Flogo.png","\u003C!DOCTYPE html>\n\u003Chtml lang=\"zh-CN\">\n\u003Chead>\u003Cmeta charset=\"UTF-8\">\u003Cmeta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">\u003C\u002Fhead>\n\u003Cbody style=\"margin:0;padding:24px 0;background:#f1f5f9;font-family:'Microsoft YaHei','PingFang SC',Helvetica,Arial,sans-serif;\">\n  \u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#f1f5f9;\">\n    \u003Ctr>\n      \u003Ctd align=\"center\" style=\"padding:0 16px;\">\n        \u003Ctable role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"max-width:600px;width:100%;\">\n          \u003C!-- 品牌头部 -->\n          \u003Ctr>\n            \u003Ctd style=\"background:#3b82f6;border-radius:12px 12px 0 0;padding:20px 28px;\">\n              \u003Cspan style=\"font-size:18px;font-weight:bold;color:#ffffff;\">\u003Ca href=\"{site_url}\" style=\"color:#ffffff;text-decoration:none;\">{site_name}\u003C\u002Fa>\u003C\u002Fspan>\n              \u003Cspan style=\"float:right;font-size:12px;color:#dbeafe;line-height:26px;\">{site_description}\u003C\u002Fspan>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n          \u003C!-- 正文卡片 -->\n          \u003Ctr>\n            \u003Ctd style=\"background:#ffffff;padding:32px 28px;border-radius:0 0 12px 12px;box-shadow:0 2px 8px rgba(15,23,42,0.06);\">\n              \n  \u003Ch2 style=\"margin:0 0 16px;font-size:20px;color:#1e293b;\">🔒 账户密码修改成功\u003C\u002Fh2>\n  \u003Cp style=\"margin:0 0 16px;font-size:14px;line-height:1.8;color:#475569;\">\n    你好，\u003Cstrong style=\"color:#1e293b;\">{username}\u003C\u002Fstrong>，你的账户密码已于刚刚修改成功。\n  \u003C\u002Fp>\n  \u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#f8fafc;border-radius:10px;margin:8px 0 4px;\">\n    \u003Ctr>\u003Ctd style=\"padding:14px 18px;font-size:13px;line-height:2;color:#475569;\">\n      账户用户名：\u003Cstrong style=\"color:#1e293b;\">{username}\u003C\u002Fstrong>\u003Cbr>\n      账户邮箱：\u003Cstrong style=\"color:#1e293b;\">{email}\u003C\u002Fstrong>\u003Cbr>\n      修改时间：\u003Cstrong style=\"color:#1e293b;\">{change_time}\u003C\u002Fstrong>\n    \u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftable>\n  \u003Cp style=\"margin:16px 0 0;font-size:13px;line-height:1.8;color:#64748b;\">\n    如果这是你本人的操作，请忽略本邮件；\u003Cstrong style=\"color:#dc2626;\">如果不是你本人操作，说明账户密码可能已泄露\u003C\u002Fstrong>，\n    请立即使用「忘记密码」功能重置密码，并通过页脚联系邮箱告知站长。\n  \u003C\u002Fp>\n  \n  \u003Cp style=\"text-align:center;margin:28px 0 8px;\">\n    \u003Ca href=\"{site_url}\" style=\"display:inline-block;padding:12px 36px;background:#3b82f6;color:#ffffff;font-size:15px;font-weight:bold;text-decoration:none;border-radius:8px;\">进入{site_name}\u003C\u002Fa>\n  \u003C\u002Fp>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n          \u003C!-- 页脚 -->\n          \u003Ctr>\n            \u003Ctd align=\"center\" style=\"padding:20px 16px 0;\">\n              \n              \u003Cp style=\"margin:6px 0 0;font-size:12px;color:#94a3b8;\">联系邮箱：\u003Ca href=\"mailto:{contact_email}\" style=\"color:#64748b;text-decoration:none;\">{contact_email}\u003C\u002Fa>\u003C\u002Fp>\n              \u003Cp style=\"margin:6px 0 0;font-size:12px;color:#94a3b8;\">此邮件由系统自动发送，请勿直接回复 · © {year} {site_name}\u003C\u002Fp>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n        \u003C\u002Ftable>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>","【{site_name}】你的账户密码已修改","\u003C!DOCTYPE html>\n\u003Chtml lang=\"zh-CN\">\n\u003Chead>\u003Cmeta charset=\"UTF-8\">\u003Cmeta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">\u003C\u002Fhead>\n\u003Cbody style=\"margin:0;padding:24px 0;background:#f1f5f9;font-family:'Microsoft YaHei','PingFang SC',Helvetica,Arial,sans-serif;\">\n  \u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#f1f5f9;\">\n    \u003Ctr>\n      \u003Ctd align=\"center\" style=\"padding:0 16px;\">\n        \u003Ctable role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"max-width:600px;width:100%;\">\n          \u003C!-- 品牌头部 -->\n          \u003Ctr>\n            \u003Ctd style=\"background:#3b82f6;border-radius:12px 12px 0 0;padding:20px 28px;\">\n              \u003Cspan style=\"font-size:18px;font-weight:bold;color:#ffffff;\">\u003Ca href=\"{site_url}\" style=\"color:#ffffff;text-decoration:none;\">{site_name}\u003C\u002Fa>\u003C\u002Fspan>\n              \u003Cspan style=\"float:right;font-size:12px;color:#dbeafe;line-height:26px;\">{site_description}\u003C\u002Fspan>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n          \u003C!-- 正文卡片 -->\n          \u003Ctr>\n            \u003Ctd style=\"background:#ffffff;padding:32px 28px;border-radius:0 0 12px 12px;box-shadow:0 2px 8px rgba(15,23,42,0.06);\">\n              \n  \u003Ch2 style=\"margin:0 0 16px;font-size:20px;color:#1e293b;\">注册邮箱验证码\u003C\u002Fh2>\n  \u003Cp style=\"margin:0 0 16px;font-size:14px;line-height:1.8;color:#475569;\">欢迎注册 \u003Cstrong>{site_name}\u003C\u002Fstrong>！感谢你的加入，请使用下方验证码完成邮箱验证：\u003C\u002Fp>\n  \u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin:8px 0 4px;\">\n    \u003Ctr>\n      \u003Ctd align=\"center\" style=\"background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:22px 0;\">\n        \u003Cspan style=\"font-size:32px;font-weight:bold;letter-spacing:10px;color:#3b82f6;font-family:Consolas,Menlo,monospace;\">{code}\u003C\u002Fspan>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n  \u003Cp style=\"margin:12px 0 0;font-size:13px;color:#64748b;\">\n    验证码 \u003Cstrong style=\"color:#dc2626;\">{expire} 分钟\u003C\u002Fstrong> 内有效，为保障账户安全，请勿向他人泄露。\n  \u003C\u002Fp>\n  \u003Chr style=\"border:none;border-top:1px solid #e2e8f0;margin:24px 0;\">\n  \n  \u003Cp style=\"margin:0 0 12px;font-size:14px;line-height:1.8;color:#475569;\">\n    这里是 \u003Cstrong style=\"color:#1e293b;\">{site_name}\u003C\u002Fstrong>，{site_description}\n  \u003C\u002Fp>\n  \u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin:8px 0 4px;\">\n    \u003Ctr>\n      \u003Ctd width=\"33%\" valign=\"top\" style=\"padding:6px;\">\n        \u003Cdiv style=\"background:#eff6ff;border-radius:8px;padding:14px 10px;text-align:center;\">\n          \u003Cdiv style=\"font-size:15px;\">📚\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:13px;font-weight:bold;color:#1e40af;margin-top:4px;\">精选教程\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:12px;color:#64748b;margin-top:2px;\">从入门到实战\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Ftd>\n      \u003Ctd width=\"33%\" valign=\"top\" style=\"padding:6px;\">\n        \u003Cdiv style=\"background:#ecfdf5;border-radius:8px;padding:14px 10px;text-align:center;\">\n          \u003Cdiv style=\"font-size:15px;\">🚀\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:13px;font-weight:bold;color:#065f46;margin-top:4px;\">开源项目\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:12px;color:#64748b;margin-top:2px;\">精选可部署方案\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Ftd>\n      \u003Ctd width=\"34%\" valign=\"top\" style=\"padding:6px;\">\n        \u003Cdiv style=\"background:#fff7ed;border-radius:8px;padding:14px 10px;text-align:center;\">\n          \u003Cdiv style=\"font-size:15px;\">🧰\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:13px;font-weight:bold;color:#9a3412;margin-top:4px;\">在线工具\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:12px;color:#64748b;margin-top:2px;\">即开即用提效\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n  \u003Cp style=\"margin:20px 0 0;font-size:12px;line-height:1.8;color:#94a3b8;\">\n    如果这不是你本人的操作，请忽略本邮件，你的账户安全不会受到影响。\n  \u003C\u002Fp>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n          \u003C!-- 页脚 -->\n          \u003Ctr>\n            \u003Ctd align=\"center\" style=\"padding:20px 16px 0;\">\n              \n              \u003Cp style=\"margin:6px 0 0;font-size:12px;color:#94a3b8;\">联系邮箱：\u003Ca href=\"mailto:{contact_email}\" style=\"color:#64748b;text-decoration:none;\">{contact_email}\u003C\u002Fa>\u003C\u002Fp>\n              \u003Cp style=\"margin:6px 0 0;font-size:12px;color:#94a3b8;\">此邮件由系统自动发送，请勿直接回复 · © {year} {site_name}\u003C\u002Fp>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n        \u003C\u002Ftable>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>","【{site_name}】注册验证码","\u003C!DOCTYPE html>\n\u003Chtml lang=\"zh-CN\">\n\u003Chead>\u003Cmeta charset=\"UTF-8\">\u003Cmeta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">\u003C\u002Fhead>\n\u003Cbody style=\"margin:0;padding:24px 0;background:#f1f5f9;font-family:'Microsoft YaHei','PingFang SC',Helvetica,Arial,sans-serif;\">\n  \u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#f1f5f9;\">\n    \u003Ctr>\n      \u003Ctd align=\"center\" style=\"padding:0 16px;\">\n        \u003Ctable role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"max-width:600px;width:100%;\">\n          \u003C!-- 品牌头部 -->\n          \u003Ctr>\n            \u003Ctd style=\"background:#3b82f6;border-radius:12px 12px 0 0;padding:20px 28px;\">\n              \u003Cspan style=\"font-size:18px;font-weight:bold;color:#ffffff;\">\u003Ca href=\"{site_url}\" style=\"color:#ffffff;text-decoration:none;\">{site_name}\u003C\u002Fa>\u003C\u002Fspan>\n              \u003Cspan style=\"float:right;font-size:12px;color:#dbeafe;line-height:26px;\">{site_description}\u003C\u002Fspan>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n          \u003C!-- 正文卡片 -->\n          \u003Ctr>\n            \u003Ctd style=\"background:#ffffff;padding:32px 28px;border-radius:0 0 12px 12px;box-shadow:0 2px 8px rgba(15,23,42,0.06);\">\n              \n  \u003Ch2 style=\"margin:0 0 16px;font-size:20px;color:#1e293b;\">找回密码验证码\u003C\u002Fh2>\n  \u003Cp style=\"margin:0 0 16px;font-size:14px;line-height:1.8;color:#475569;\">你正在找回账户密码，请使用下方验证码完成重置操作：\u003C\u002Fp>\n  \u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin:8px 0 4px;\">\n    \u003Ctr>\n      \u003Ctd align=\"center\" style=\"background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:22px 0;\">\n        \u003Cspan style=\"font-size:32px;font-weight:bold;letter-spacing:10px;color:#3b82f6;font-family:Consolas,Menlo,monospace;\">{code}\u003C\u002Fspan>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n  \u003Cp style=\"margin:12px 0 0;font-size:13px;color:#64748b;\">\n    验证码 \u003Cstrong style=\"color:#dc2626;\">{expire} 分钟\u003C\u002Fstrong> 内有效，为保障账户安全，请勿向他人泄露。\n  \u003C\u002Fp>\n  \u003Chr style=\"border:none;border-top:1px solid #e2e8f0;margin:24px 0;\">\n  \n  \u003Cp style=\"margin:0 0 12px;font-size:14px;line-height:1.8;color:#475569;\">\n    这里是 \u003Cstrong style=\"color:#1e293b;\">{site_name}\u003C\u002Fstrong>，{site_description}\n  \u003C\u002Fp>\n  \u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin:8px 0 4px;\">\n    \u003Ctr>\n      \u003Ctd width=\"33%\" valign=\"top\" style=\"padding:6px;\">\n        \u003Cdiv style=\"background:#eff6ff;border-radius:8px;padding:14px 10px;text-align:center;\">\n          \u003Cdiv style=\"font-size:15px;\">📚\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:13px;font-weight:bold;color:#1e40af;margin-top:4px;\">精选教程\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:12px;color:#64748b;margin-top:2px;\">从入门到实战\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Ftd>\n      \u003Ctd width=\"33%\" valign=\"top\" style=\"padding:6px;\">\n        \u003Cdiv style=\"background:#ecfdf5;border-radius:8px;padding:14px 10px;text-align:center;\">\n          \u003Cdiv style=\"font-size:15px;\">🚀\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:13px;font-weight:bold;color:#065f46;margin-top:4px;\">开源项目\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:12px;color:#64748b;margin-top:2px;\">精选可部署方案\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Ftd>\n      \u003Ctd width=\"34%\" valign=\"top\" style=\"padding:6px;\">\n        \u003Cdiv style=\"background:#fff7ed;border-radius:8px;padding:14px 10px;text-align:center;\">\n          \u003Cdiv style=\"font-size:15px;\">🧰\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:13px;font-weight:bold;color:#9a3412;margin-top:4px;\">在线工具\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:12px;color:#64748b;margin-top:2px;\">即开即用提效\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n  \u003Cp style=\"margin:20px 0 0;font-size:12px;line-height:1.8;color:#94a3b8;\">\n    如果这不是你本人的操作，请忽略本邮件，你的账户安全不会受到影响。\n  \u003C\u002Fp>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n          \u003C!-- 页脚 -->\n          \u003Ctr>\n            \u003Ctd align=\"center\" style=\"padding:20px 16px 0;\">\n              \n              \u003Cp style=\"margin:6px 0 0;font-size:12px;color:#94a3b8;\">联系邮箱：\u003Ca href=\"mailto:{contact_email}\" style=\"color:#64748b;text-decoration:none;\">{contact_email}\u003C\u002Fa>\u003C\u002Fp>\n              \u003Cp style=\"margin:6px 0 0;font-size:12px;color:#94a3b8;\">此邮件由系统自动发送，请勿直接回复 · © {year} {site_name}\u003C\u002Fp>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n        \u003C\u002Ftable>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>","【{site_name}】找回密码验证码","\u003C!DOCTYPE html>\n\u003Chtml lang=\"zh-CN\">\n\u003Chead>\u003Cmeta charset=\"UTF-8\">\u003Cmeta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">\u003C\u002Fhead>\n\u003Cbody style=\"margin:0;padding:24px 0;background:#f1f5f9;font-family:'Microsoft YaHei','PingFang SC',Helvetica,Arial,sans-serif;\">\n  \u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#f1f5f9;\">\n    \u003Ctr>\n      \u003Ctd align=\"center\" style=\"padding:0 16px;\">\n        \u003Ctable role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"max-width:600px;width:100%;\">\n          \u003C!-- 品牌头部 -->\n          \u003Ctr>\n            \u003Ctd style=\"background:#3b82f6;border-radius:12px 12px 0 0;padding:20px 28px;\">\n              \u003Cspan style=\"font-size:18px;font-weight:bold;color:#ffffff;\">\u003Ca href=\"{site_url}\" style=\"color:#ffffff;text-decoration:none;\">{site_name}\u003C\u002Fa>\u003C\u002Fspan>\n              \u003Cspan style=\"float:right;font-size:12px;color:#dbeafe;line-height:26px;\">{site_description}\u003C\u002Fspan>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n          \u003C!-- 正文卡片 -->\n          \u003Ctr>\n            \u003Ctd style=\"background:#ffffff;padding:32px 28px;border-radius:0 0 12px 12px;box-shadow:0 2px 8px rgba(15,23,42,0.06);\">\n              \n  \u003Ch2 style=\"margin:0 0 4px;font-size:20px;color:#1e293b;\">🎉 欢迎加入 {site_name}！\u003Cspan style=\"display:inline-block;margin-left:8px;padding:2px 8px;background:#dcfce7;color:#15803d;font-size:12px;border-radius:10px;vertical-align:middle;\">邮箱已验证\u003C\u002Fspan>\u003C\u002Fh2>\n  \u003Cp style=\"margin:0 0 16px;font-size:14px;line-height:1.8;color:#475569;\">\n    你好，\u003Cstrong style=\"color:#1e293b;\">{username}\u003C\u002Fstrong>，你的账户已注册成功。\n  \u003C\u002Fp>\n  \u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background:#f8fafc;border-radius:10px;margin:8px 0 4px;\">\n    \u003Ctr>\u003Ctd style=\"padding:14px 18px;font-size:13px;line-height:2;color:#475569;\">\n      账户用户名：\u003Cstrong style=\"color:#1e293b;\">{username}\u003C\u002Fstrong>\u003Cbr>\n      注册邮箱：\u003Cstrong style=\"color:#1e293b;\">{email}\u003C\u002Fstrong>\u003Cbr>\n      注册奖励：\u003Cstrong style=\"color:#dc2626;\">+{register_points} 积分\u003C\u002Fstrong>已发放\n    \u003C\u002Ftd>\u003C\u002Ftr>\n  \u003C\u002Ftable>\n  \u003Chr style=\"border:none;border-top:1px solid #e2e8f0;margin:24px 0;\">\n  \n  \u003Cp style=\"margin:0 0 12px;font-size:14px;line-height:1.8;color:#475569;\">\n    这里是 \u003Cstrong style=\"color:#1e293b;\">{site_name}\u003C\u002Fstrong>，{site_description}\n  \u003C\u002Fp>\n  \u003Ctable role=\"presentation\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin:8px 0 4px;\">\n    \u003Ctr>\n      \u003Ctd width=\"33%\" valign=\"top\" style=\"padding:6px;\">\n        \u003Cdiv style=\"background:#eff6ff;border-radius:8px;padding:14px 10px;text-align:center;\">\n          \u003Cdiv style=\"font-size:15px;\">📚\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:13px;font-weight:bold;color:#1e40af;margin-top:4px;\">精选教程\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:12px;color:#64748b;margin-top:2px;\">从入门到实战\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Ftd>\n      \u003Ctd width=\"33%\" valign=\"top\" style=\"padding:6px;\">\n        \u003Cdiv style=\"background:#ecfdf5;border-radius:8px;padding:14px 10px;text-align:center;\">\n          \u003Cdiv style=\"font-size:15px;\">🚀\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:13px;font-weight:bold;color:#065f46;margin-top:4px;\">开源项目\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:12px;color:#64748b;margin-top:2px;\">精选可部署方案\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Ftd>\n      \u003Ctd width=\"34%\" valign=\"top\" style=\"padding:6px;\">\n        \u003Cdiv style=\"background:#fff7ed;border-radius:8px;padding:14px 10px;text-align:center;\">\n          \u003Cdiv style=\"font-size:15px;\">🧰\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:13px;font-weight:bold;color:#9a3412;margin-top:4px;\">在线工具\u003C\u002Fdiv>\n          \u003Cdiv style=\"font-size:12px;color:#64748b;margin-top:2px;\">即开即用提效\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n  \u003Cp style=\"margin:16px 0 0;font-size:14px;line-height:1.8;color:#475569;\">登录后你可以：\u003C\u002Fp>\n  \u003Cul style=\"margin:8px 0 0;padding-left:22px;font-size:14px;line-height:2;color:#475569;\">\n    \u003Cli>浏览、收藏优质内容与实用工具\u003C\u002Fli>\n    \u003Cli>投稿教程与项目，审核通过后获得积分奖励\u003C\u002Fli>\n    \u003Cli>参与评论、打分，与其他用户交流\u003C\u002Fli>\n    \u003Cli>通过签到、投稿、互动持续累积积分与等级\u003C\u002Fli>\n  \u003C\u002Ful>\n  \n  \u003Cp style=\"text-align:center;margin:28px 0 8px;\">\n    \u003Ca href=\"{site_url}\" style=\"display:inline-block;padding:12px 36px;background:#3b82f6;color:#ffffff;font-size:15px;font-weight:bold;text-decoration:none;border-radius:8px;\">进入{site_name}\u003C\u002Fa>\n  \u003C\u002Fp>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n          \u003C!-- 页脚 -->\n          \u003Ctr>\n            \u003Ctd align=\"center\" style=\"padding:20px 16px 0;\">\n              \n              \u003Cp style=\"margin:6px 0 0;font-size:12px;color:#94a3b8;\">联系邮箱：\u003Ca href=\"mailto:{contact_email}\" style=\"color:#64748b;text-decoration:none;\">{contact_email}\u003C\u002Fa>\u003C\u002Fp>\n              \u003Cp style=\"margin:6px 0 0;font-size:12px;color:#94a3b8;\">此邮件由系统自动发送，请勿直接回复 · © {year} {site_name}\u003C\u002Fp>\n            \u003C\u002Ftd>\n          \u003C\u002Ftr>\n        \u003C\u002Ftable>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>","【{site_name}】欢迎加入{site_name}，账户注册成功","7111479@qq.com","\u002Fstatic\u002Fuploads\u002Fimages\u002F2026\u002F09\u002F29\u002F1790627623420492239.jpg","全栈开发者，专注 AI 应用与效率工具","武哥","\u002Fstatic\u002Fuploads\u002Fimages\u002F2026\u002F09\u002F29\u002F1790629453503799753.png","热门爆款","精选项目","精选专题","精选工具","AI导航工具站","精选优质 AI 教程、AI 工具与开源项目，助力开发者快速上手人工智能","AI导航工具站 - AI 教程 · AI 项目 · AI 工具","%s - AI导航工具站","\u002Fimages\u002Flogo\u002Ffavicon.ico","https:\u002F\u002Fwuge.fun","\u002Fstatic\u002Fuploads\u002Fimages\u002F2026\u002F09\u002F29\u002F1790628026196296604.png",{"items":49,"pagination":50,"tag":54},[],{"page":51,"pageSize":52,"total":53,"totalPages":51},1,12,0,{"id":55,"name":56,"slug":57,"color":58,"postCount":53,"createdAt":59},124,"BeautifulSoup","beautifulsoup","#e2e8f0","2026-09-29T06:55:38.372320794+08:00",[61,68],{"id":62,"name":63,"url":64,"logo":65,"description":63,"sortOrder":53,"status":51,"createdAt":66,"updatedAt":67},2,"哔哩哔哩","https:\u002F\u002Fwww.bilibili.com\u002F","\\images\\social\\bilibili.png","0001-01-01T00:00:00Z","2026-09-29T04:44:41.867019475+08:00",{"id":51,"name":69,"url":70,"logo":71,"description":69,"sortOrder":53,"status":51,"createdAt":72,"updatedAt":72},"GitHub","https:\u002F\u002Fgithub.com","\\images\\social\\github.png","2026-09-29T04:32:39.65740234+08:00",{"items":74,"pagination":117},[75],{"id":52,"title":76,"slug":77,"summary":78,"content":79,"coverImage":80,"categoryId":81,"authorId":51,"viewCount":53,"likeCount":53,"commentCount":53,"isTop":53,"isRecommend":53,"status":51,"rejectReason":5,"publishedAt":82,"createdAt":83,"updatedAt":84,"category":85,"author":89,"tags":97},"Python requests 爬虫入门：从发送请求到解析 HTML","requests-spider","Python 爬虫第一课：用 requests + BeautifulSoup 抓取网页数据。从 GET\u002FPOST 请求、请求头伪装到数据提取，附完整实战案例和反爬应对策略。","## 先立规矩：合法合规爬取\n\n写代码之前必须说清楚：\n\n- 只爬**公开数据**，不碰需要登录才能看的内容\n- 遵守网站的 `robots.txt` 协议（在域名后加 `\u002Frobots.txt` 可查看）\n- 控制频率，别把人家服务器压垮（就是讲礼貌）\n- 数据仅供个人学习，不用于商业用途，不爬个人隐私信息\n\n技术无罪，用法有责。下面的练习我们以公开的静态页面为例。\n\n## 爬虫的本质：三步走\n\n```text\n1. 发送请求（requests）→ 服务器返回 HTML 文本\n2. 解析内容（BeautifulSoup）→ 从 HTML 里提取要的数据\n3. 保存数据（csv\u002Fjson\u002F数据库）→ 落盘\n```\n\n安装依赖：\n\n```bash\npip install requests beautifulsoup4 lxml\n```\n\n## 第一步：requests 发送请求\n\n**最基本的 GET 请求**：\n\n```python\nimport requests\n\nresp = requests.get(\"https:\u002F\u002Fexample.com\")\nprint(resp.status_code)  # 200 表示成功\nprint(resp.text[:200])   # 网页 HTML 前 200 字符\n```\n\n**带参数的 GET**：\n\n```python\n# 等价于访问 https:\u002F\u002Fexample.com\u002Fsearch?q=python&page=2\nparams = {\"q\": \"python\", \"page\": 2}\nresp = requests.get(\"https:\u002F\u002Fexample.com\u002Fsearch\", params=params)\nprint(resp.url)  # 自动拼好的完整 URL\n```\n\n**POST 请求**（模拟表单提交）：\n\n```python\ndata = {\"username\": \"test\", \"password\": \"123456\"}\nresp = requests.post(\"https:\u002F\u002Fexample.com\u002Flogin\", data=data)\n```\n\n**响应对象常用属性**：\n\n```python\nresp.status_code   # 状态码：200 成功，404 不存在，403 被拒绝\nresp.text          # 文本内容（自动按推测编码解码）\nresp.content       # 二进制内容（下载图片\u002F文件用这个）\nresp.json()        # 接口返回 JSON 时直接转成字典\nresp.encoding      # 乱码时手动指定：resp.encoding = \"utf-8\"\n```\n\n## 第二步：请求头伪装（过不了反爬就看这里）\n\n很多网站会检查请求头，发现是程序访问就拒绝。加上请求头伪装成浏览器：\n\n```python\nheaders = {\n    \"User-Agent\": \"Mozilla\u002F5.0 (Windows NT 10.0; Win64; x64) \"\n                  \"AppleWebKit\u002F537.36 (KHTML, like Gecko) \"\n                  \"Chrome\u002F120.0.0.0 Safari\u002F537.36\",\n    \"Referer\": \"https:\u002F\u002Fexample.com\u002F\",  # 有些站检查来源页\n}\nresp = requests.get(url, headers=headers, timeout=10)\n```\n\n`User-Agent` 可以直接从浏览器复制：F12 打开开发者工具 → Network → 随便点一个请求 → Headers → Request Headers。\n\n**超时设置是必须的**：不加 `timeout`，目标服务器不响应时程序会永远卡住。\n\n## 第三步：BeautifulSoup 解析 HTML\n\n拿到 HTML 后，用 CSS 选择器提取数据：\n\n```python\nfrom bs4 import BeautifulSoup\n\nhtml = \"\"\"\n\u003Chtml>\u003Cbody>\n  \u003Cdiv class=\"article\">\n    \u003Ch2>标题一\u003C\u002Fh2>\n    \u003Cp class=\"intro\">简介一\u003C\u002Fp>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"article\">\n    \u003Ch2>标题二\u003C\u002Fh2>\n    \u003Cp class=\"intro\">简介二\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\u003C\u002Fbody>\u003C\u002Fhtml>\n\"\"\"\n\nsoup = BeautifulSoup(html, \"lxml\")\n\n# 最常用的 4 个方法\nsoup.select(\"h2\")            # CSS 选择器，返回所有匹配的列表\nsoup.select_one(\"h2\")        # 只返回第一个\nsoup.find(\"div\", class_=\"article\")   # 按标签+属性查找\nsoup.find_all(\"h2\")          # 返回所有匹配\n\n# 提取内容\nfor article in soup.select(\"div.article\"):\n    title = article.select_one(\"h2\").text.strip()\n    intro = article.select_one(\"p.intro\").text.strip()\n    print(title, \"|\", intro)\n```\n\n**提取属性**（如链接地址、图片地址）：\n\n```python\nlink = soup.select_one(\"a\")\nprint(link[\"href\"])     # 取 href 属性\nprint(link.get_text())  # 取链接文字\n```\n\n## 完整实战：抓取本站文章列表\n\n下面是一个可以直接改造的实战模板：\n\n```python\nimport csv\nimport time\n\nimport requests\nfrom bs4 import BeautifulSoup\n\nHEADERS = {\n    \"User-Agent\": \"Mozilla\u002F5.0 (Windows NT 10.0; Win64; x64) \"\n                  \"AppleWebKit\u002F537.36 Chrome\u002F120.0.0.0 Safari\u002F537.36\"\n}\n\ndef fetch_page(url: str) -> str:\n    \"\"\"下载页面，带重试\"\"\"\n    for attempt in range(3):\n        try:\n            resp = requests.get(url, headers=HEADERS, timeout=10)\n            resp.raise_for_status()  # 4xx\u002F5xx 直接抛异常\n            resp.encoding = \"utf-8\"\n            return resp.text\n        except requests.RequestException as e:\n            print(f\"第 {attempt + 1} 次请求失败: {e}\")\n            time.sleep(2)\n    return \"\"\n\ndef parse_page(html: str) -> list[dict]:\n    \"\"\"解析页面，提取文章列表（选择器按目标网站实际结构调整）\"\"\"\n    soup = BeautifulSoup(html, \"lxml\")\n    articles = []\n    for item in soup.select(\"div.post-item\"):\n        title_tag = item.select_one(\"h2 a\")\n        if not title_tag:\n            continue\n        articles.append({\n            \"title\": title_tag.get_text(strip=True),\n            \"url\": title_tag.get(\"href\", \"\"),\n            \"date\": item.select_one(\".date\").get_text(strip=True)\n                    if item.select_one(\".date\") else \"\",\n        })\n    return articles\n\ndef save_csv(data: list[dict], filename: str = \"articles.csv\"):\n    \"\"\"保存到 CSV，Excel 可直接打开\"\"\"\n    with open(filename, \"w\", newline=\"\", encoding=\"utf-8-sig\") as f:\n        writer = csv.DictWriter(f, fieldnames=[\"title\", \"url\", \"date\"])\n        writer.writeheader()\n        writer.writerows(data)\n    print(f\"已保存 {len(data)} 条到 {filename}\")\n\nif __name__ == \"__main__\":\n    all_data = []\n    for page in range(1, 4):  # 抓前 3 页\n        url = f\"https:\u002F\u002Fexample.com\u002Fposts?page={page}\"\n        html = fetch_page(url)\n        if html:\n            all_data.extend(parse_page(html))\n        time.sleep(1.5)  # 礼貌间隔，别给人家服务器压力\n    save_csv(all_data)\n```\n\n## 动态渲染页面怎么办\n\n上面的方法只适合**服务端渲染**的页面（HTML 里直接有数据）。如果数据是 JS 动态加载的（`resp.text` 里找不到要的内容），两条路：\n\n**路线一：找接口（优先）**\n\nF12 → Network → Fetch\u002FXHR，刷新页面，找返回 JSON 的接口。很多网站前端就是调这些接口拿数据的，直接请求接口比解析 HTML 省事十倍：\n\n```python\nresp = requests.get(\"https:\u002F\u002Fexample.com\u002Fapi\u002Fposts?page=1\", headers=HEADERS)\ndata = resp.json()  # 直接拿到结构化数据，连解析都不用\n```\n\n**路线二：上浏览器自动化**\n\n接口藏得太深时，用 Playwright 驱动真实浏览器：\n\n```bash\npip install playwright && playwright install chromium\n```\n\n```python\nfrom playwright.sync_api import sync_playwright\n\nwith sync_playwright() as p:\n    browser = p.chromium.launch(headless=True)\n    page = browser.new_page()\n    page.goto(\"https:\u002F\u002Fexample.com\")\n    page.wait_for_selector(\"div.post-item\")  # 等内容渲染出来\n    html = page.content()\n    browser.close()\n# 之后照常 BeautifulSoup 解析\n```\n\n## 常见反爬与应对\n\n| 反爬手段 | 表现 | 应对 |\n|---------|------|------|\n| UA 检测 | 403 拒绝 | 加真实 User-Agent |\n| 频率限制 | 429 或封 IP | time.sleep 降速、换 IP |\n| 登录墙 | 跳转登录页 | requests.Session() 保持 Cookie |\n| 验证码 | 弹验证 | 降低频率避开触发点，不建议硬刚 |\n| 动态渲染 | HTML 里没数据 | 找接口或用 Playwright |\n\n## 写在最后\n\n爬虫 80% 的工作量是「分析目标网站」而不是写代码：数据在 HTML 里还是接口里？分页参数长什么样？有没有反爬？先花 20 分钟用 F12 把网站看透，代码往往 20 行就够了。\n","\u002Fstatic\u002Fuploads\u002Fimages\u002F2026\u002F09\u002F29\u002F1790636138387839504.png",8,"2026-09-29T06:56:45.03460923+08:00","2026-09-29T06:55:38.387959519+08:00","2026-09-29T06:56:45.034666561+08:00",{"id":81,"name":86,"slug":87,"description":86,"icon":5,"sortOrder":53,"postCount":53,"parentId":53,"createdAt":88,"updatedAt":88},"Python专题","Python","2026-09-29T06:55:05.938571812+08:00",{"id":51,"username":90,"email":32,"phone":5,"nickname":91,"avatarUrl":92,"bio":5,"role":51,"status":51,"points":53,"lastLoginAt":93,"loginCount":94,"createdAt":95,"updatedAt":96},"wuge","站长","\u002Fstatic\u002Fuploads\u002Favatars\u002F2026\u002F09\u002F29\u002F1790630804049538805.jpg","2026-09-29T05:22:12.192245111+08:00",3,"2026-09-29T04:25:29.170055083+08:00","2026-09-29T05:26:46.960829427+08:00",[98,102,107,111,112],{"id":99,"name":87,"slug":100,"color":58,"postCount":53,"createdAt":101},6,"python","2026-09-29T04:25:30.347030306+08:00",{"id":103,"name":104,"slug":105,"color":58,"postCount":53,"createdAt":106},122,"爬虫","pa-chong","2026-09-29T06:55:38.359394779+08:00",{"id":108,"name":109,"slug":109,"color":58,"postCount":53,"createdAt":110},123,"requests","2026-09-29T06:55:38.366815934+08:00",{"id":55,"name":56,"slug":57,"color":58,"postCount":53,"createdAt":59},{"id":113,"name":114,"slug":115,"color":58,"postCount":53,"createdAt":116},125,"数据采集","shu-ju-cai-ji","2026-09-29T06:55:38.379703082+08:00",{"page":51,"pageSize":52,"total":51,"totalPages":51},[119,124,129,134,139,144,149,154,159,164,169,174,179,180,185,190,194,199,204,209,214,219,224,229,234,239,243,248,253,258],{"id":120,"name":121,"slug":122,"color":58,"postCount":53,"createdAt":123},150,"AI","ai","2026-09-29T06:55:38.743861502+08:00",{"id":125,"name":126,"slug":127,"color":58,"postCount":53,"createdAt":128},53,"AI 绘画","ai-hui-hua","2026-09-29T04:25:30.70107663+08:00",{"id":130,"name":131,"slug":132,"color":58,"postCount":53,"createdAt":133},94,"AIGC","aigc","2026-09-29T06:46:13.817043541+08:00",{"id":135,"name":136,"slug":137,"color":58,"postCount":53,"createdAt":138},81,"AI入门","ai-ru-men","2026-09-29T06:46:13.646321088+08:00",{"id":140,"name":141,"slug":142,"color":58,"postCount":53,"createdAt":143},113,"AI写作","ai-xie-zuo","2026-09-29T06:46:14.098797917+08:00",{"id":145,"name":146,"slug":147,"color":58,"postCount":53,"createdAt":148},95,"AI工具","ai-gong-ju","2026-09-29T06:46:13.849105815+08:00",{"id":150,"name":151,"slug":152,"color":58,"postCount":53,"createdAt":153},87,"AI技巧","ai-ji-qiao","2026-09-29T06:46:13.717351439+08:00",{"id":155,"name":156,"slug":157,"color":58,"postCount":53,"createdAt":158},92,"AI绘画","ai-hui-hua-2","2026-09-29T06:46:13.800506851+08:00",{"id":160,"name":161,"slug":162,"color":58,"postCount":53,"createdAt":163},88,"AI编程","ai-bian-cheng","2026-09-29T06:46:13.748934007+08:00",{"id":165,"name":166,"slug":167,"color":58,"postCount":53,"createdAt":168},104,"API","api","2026-09-29T06:46:13.964167454+08:00",{"id":170,"name":171,"slug":172,"color":58,"postCount":53,"createdAt":173},24,"Agent","agent","2026-09-29T04:25:30.481917452+08:00",{"id":175,"name":176,"slug":177,"color":58,"postCount":53,"createdAt":178},15,"Apache-2.0","apache-2-0","2026-09-29T04:25:30.413130076+08:00",{"id":55,"name":56,"slug":57,"color":58,"postCount":53,"createdAt":59},{"id":181,"name":182,"slug":183,"color":58,"postCount":53,"createdAt":184},71,"C++","c","2026-09-29T04:25:30.832723566+08:00",{"id":186,"name":187,"slug":188,"color":58,"postCount":53,"createdAt":189},9,"C\u002FC++","c-c","2026-09-29T04:25:30.367438818+08:00",{"id":81,"name":191,"slug":192,"color":58,"postCount":53,"createdAt":193},"CPU 推理","cpu-tui-li","2026-09-29T04:25:30.360161464+08:00",{"id":195,"name":196,"slug":197,"color":58,"postCount":53,"createdAt":198},82,"ChatGPT","chatgpt","2026-09-29T06:46:13.65246271+08:00",{"id":200,"name":201,"slug":202,"color":58,"postCount":53,"createdAt":203},43,"ChatGPT 界面","chatgpt-jie-mian","2026-09-29T04:25:30.631791206+08:00",{"id":205,"name":206,"slug":207,"color":58,"postCount":53,"createdAt":208},109,"Coze","coze","2026-09-29T06:46:14.04772698+08:00",{"id":210,"name":211,"slug":212,"color":58,"postCount":53,"createdAt":213},89,"DeepSeek","deepseek","2026-09-29T06:46:13.756746391+08:00",{"id":215,"name":216,"slug":217,"color":58,"postCount":53,"createdAt":218},103,"Embedding","embedding","2026-09-29T06:46:13.931530378+08:00",{"id":220,"name":221,"slug":222,"color":58,"postCount":53,"createdAt":223},139,"Excel","excel","2026-09-29T06:55:38.596869557+08:00",{"id":225,"name":226,"slug":227,"color":58,"postCount":53,"createdAt":228},132,"FastAPI","fastapi","2026-09-29T06:55:38.496902061+08:00",{"id":230,"name":231,"slug":232,"color":58,"postCount":53,"createdAt":233},107,"Fine-tuning","fine-tuning","2026-09-29T06:46:14.010861283+08:00",{"id":235,"name":236,"slug":237,"color":58,"postCount":53,"createdAt":238},97,"Gamma","gamma","2026-09-29T06:46:13.863615311+08:00",{"id":94,"name":240,"slug":241,"color":58,"postCount":53,"createdAt":242},"Go","go","2026-09-29T04:25:30.324360969+08:00",{"id":244,"name":245,"slug":246,"color":58,"postCount":53,"createdAt":247},98,"Kimi","kimi","2026-09-29T06:46:13.871065157+08:00",{"id":249,"name":250,"slug":251,"color":58,"postCount":53,"createdAt":252},7,"LLM","llm","2026-09-29T04:25:30.353458642+08:00",{"id":254,"name":255,"slug":256,"color":58,"postCount":53,"createdAt":257},31,"LLMOps","llmops","2026-09-29T04:25:30.534990482+08:00",{"id":259,"name":260,"slug":261,"color":58,"postCount":53,"createdAt":262},101,"LangChain","langchain","2026-09-29T06:46:13.916898801+08:00",[264],{"id":51,"userId":265,"donorName":35,"amount":266,"message":267,"paymentMethod":268,"isAnonymous":53,"status":51,"createdAt":269},null,128,"加油","wechat","2026-09-29T04:45:44+08:00",{"materials":271},[],{"materials":273},[],{"materials":275},[]]