
影刀RPA 科研基金申请资助机会自动检索与匹配作者林焱 | 分类影刀RPA新手教程 | 难度★★什么情况用高校科研人员、企业研发团队需要持续关注各类科研基金申请机会国家自然科学基金NSFC、各省市科技计划、企业联合基金等。每个平台发布通知的时间和位置不同人工每周上十多个网站查新公告很容易错过截止日期。用影刀RPA定时检索各基金发布平台的公告栏目按关键词匹配自己的研究领域自动提取截止日期并推送到日历。不错过任何一个申请机会。怎么做第一步建立基金信息源清单在Excel中维护监控来源来源名称网址检索关键词刷新频率NSFCnsfc.gov.cn“人工智能 项目指南”每天科技部most.gov.cn“重点研发计划”每天拼多多店群自动化上架方案| 省科技厅 | kjt.zj.gov.cn | “项目申报” | 每天 || 企业联合基金 | 各企业官网 | “联合基金 开放课题” | 每周 |同时维护研究员的研究方向关键词张三人工智能、深度学习、计算机视觉李四新材料、复合材料、纳米技术第二步检索NSFC最新指南影刀操作动作【打开网页】→https://www.nsfc.gov.cn/publish/portal0/tab434/【获取元素列表】→ 公告列表中的标题、日期、链接【循环】→ 遍历每条公告【Python节点】→ 提取标题中的关键词和截止日期# 影刀Python节点解析公告提取关键信息importrefromdatetimeimportdatetime announcements[{标题:2026年度国家自然科学基金人工智能领域项目指南,日期:2026-06-25,链接:http://...},{标题:关于发布材料科学部2026年度重点项目指南的通知,日期:2026-06-20,链接:http://...},{标题:国际合作局关于征集2026年度中日韩合作研究项目的通知,日期:2026-06-15,链接:http://...},]# 研究方向关键词keywords_map{张三:[人工智能,深度学习,计算机视觉],李四:[新材料,复合材料,纳米技术],}defextract_deadline(text):从公告标题或正文提取截止日期patterns[r(\d{4}年\d{1,2}月\d{1,2}日)前,r截止.*?(\d{4}-\d{1,2}-\d{1,2}),r受理.*?(\d{4}年\d{1,2}月\d{1,2}日),]forpinpatterns:matchre.search(p,text)ifmatch:returnmatch.group(1)return待确认# 匹配研究员matches[]foranninannouncements:forresearcher,keywordsinkeywords_map.items():matched_kw[kwforkwinkeywordsifkwinann[标题]]ifmatched_kw:deadlineextract_deadline(ann[标题])matches.append({研究员:researcher,公告标题:ann[标题],匹配关键词:, .join(matched_kw),发布日期:ann[日期],估计截止日:deadline,链接:ann[链接],})forminmatches:print(f{m[研究员]}{m[公告标题]}匹配:{m[匹配关键词]}| 截止:{m[估计截止日]})第三步获取详细申报指南匹配到相关公告后进入详情页获取完整信息影刀操作动作【点击】→ 公告标题链接【获取文本】→ 正文内容【Python节点】→ 提取资助金额、申报条件、截止日期、联系方式# 提取资助详情defparse_funding_details(content):info{}# 资助金额amount_matchre.search(r资助[金额强度经费].*?(\d[-~]\d*)\s*万,content)ifamount_match:info[资助金额]amount_match.group(0)# 申报条件conditions[]if申请条件incontentor申报条件incontent:cond_sectioncontent.split(申请条件)[1][:500]if申请条件incontentelsecontent.split(申报条件)[1][:500]# 提取列表项forlineincond_section.split(\n):ifre.match(r^\d[\.\、\)],line.strip()):conditions.append(line.strip())info[申报条件]conditionsreturninfo第四步生成申报日历和通知# 影刀Python节点生成申报日历提醒defgenerate_deadline_alerts(matches):按紧急程度排序并生成提醒alerts[]forminmatches:deadlinem.get(估计截止日,)ifdeadlineanddeadline!待确认:try:deadline_datedatetime.strptime(deadline.replace(年,-).replace(月,-).replace(日,),%Y-%m-%d)days_left(deadline_date-datetime.now()).daysifdays_left0:urgency已截止elifdays_left7:urgency 紧急{days_left}天elifdays_left30:urgency 注意{days_left}天else:urgency 充裕{days_left}天alerts.append({**m,剩余天数:days_left,紧急程度:urgency})except:alerts.append({**m,剩余天数:None,紧急程度:日期格式异常})# 按紧急度排序alerts.sort(keylambdax:x.get(剩余天数,999))returnalertsforalertingenerate_deadline_alerts(matches):print(f{alert[紧急程度]}|{alert[研究员]}|{alert[公告标题]})第五步推送与日历同步【企微推送】→ 发送匹配结果给对应研究员【邮件】→ 发送详细申报指南摘要【写入Excel】→ 追加到基金申报跟踪表方便后续查阅历史有什么坑TEMU店群如何管理运营坑1公告页面结构各不相同NSFC的页面结构和省科技厅完全不一样甚至同个网站不同栏目结构也不同。需要为每个来源单独录制操作流程无法用一个通用流程搞定。坑2截止日期提取不准确很多公告的截止日期藏在正文中间或者用受理截止日期为发布之日起30个自然日这种相对日期表示。简单的正则提取会漏掉。建议待确认的标记出来人工核实不要遗漏。坑3资助机构网站不稳定政府网站在非工作日可能维护或者访问量大的时候响应慢。如果定时任务刚好在维护窗口执行会获取失败。建议设置重试机制和失败告警。坑4关键词匹配可能过于宽泛或过窄人工智能作为关键词匹配到的公告太多包括人工智能辅助教学等不相关的需要加二级过滤——根据申请代码、学科分类等进一步筛选。坑5基金申请有资格限制匹配到公告不代表有资格申请。有些基金限制申请人年龄、职称、依托单位类型。RPA只能做初步筛选最终资格确认还得研究员自己判断。总结科研基金检索的价值在于时效性——早点知道申报通知就能多点时间准备申请书。RPA把被动等通知变成主动监控每天自动跑一遍比人工每周看一次靠谱得多。