国家自然基金项目数据采集脚本

一个用于从批量采集国家自然基金项目数据的 Python 工具,支持自定义关键词搜索和年份范围筛选。

github网址:https://github.com/CaoYongshengcys/NSFC_scraper

功能特性

  • 支持自定义关键词搜索
  • 支持指定立项年份范围
  • 自动分页爬取所有结果
  • Cookie 持久化,避免重复登录
  • 数据导出为 CSV 格式,支持 Excel 直接打开
  • 可视化浏览器操作,方便调试和手动登录

环境要求

  • Python 3.8+
  • Chromium 浏览器(Playwright 会自动安装)

安装步骤

1. 安装依赖

bash 复制代码
pip install playwright

2. 安装浏览器

bash 复制代码
playwright install chromium

项目结构

复制代码
.
├── scrape_fund.py          # 主程序
├── cookies.json            # Cookie 缓存文件(自动生成)
├── fund_关键词_年份.csv     # 导出的数据文件(自动生成)
└── README.md               # 本文档

使用方法

基本用法

bash 复制代码
python scrape_fund.py --keyword "电动汽车"

完整参数

bash 复制代码
python scrape_fund.py --keyword "关键词" --start-year 2022 --end-year 2026 --wait 60

参数说明

参数 简写 默认值 说明
--keyword -k 电动汽车 搜索关键词
--start-year -s 2022 起始年份
--end-year -e 2026 结束年份
--wait -w 30 登录等待时间(秒)

使用示例

搜索"人工智能"相关项目,年份范围 2020-2024:

bash 复制代码
python scrape_fund.py -k "人工智能" -s 2020 -e 2024

搜索"新能源"相关项目,增加登录等待时间:

bash 复制代码
python scrape_fund.py --keyword "新能源" --wait 120

运行流程

  1. 程序启动后会自动打开 Chromium 浏览器
  2. 访问青塔自科云首页
  3. 等待用户登录(首次运行需要手动登录)
  4. 登录成功后,程序会自动保存 Cookie
  5. 根据关键词和年份范围执行搜索
  6. 自动翻页爬取所有结果
  7. 将数据保存为 CSV 文件

输出示例

终端输出

复制代码
==================================================
青塔自科云基金项目爬虫
==================================================
关键词: 电动汽车
年份范围: 2022 - 2026
登录等待: 30秒
==================================================
正在访问首页...
已加载保存的cookies
请在浏览器中登录(如果需要),等待30秒...
已保存cookies

正在访问搜索页: https://xxxx/fund/list?keyword=电动汽车&searchtype=(立项年份=2022-2026)
等待搜索结果加载...
找到列表项!
结果信息: 项目数 256
总项目数: 256
找到 20 个列表项

正在解析第 1 页...
当前页找到 20 个项目
已收集 20 个项目

正在解析第 2 页...
当前页找到 20 个项目
已收集 40 个项目
...

总共收集到 256 个项目
数据已保存到 fund_电动汽车_2022-2026.csv

CSV 输出格式

题目 受资机构 负责人 资助机构 金额 立项年份 申报领域
电动汽车充电优化研究 清华大学 张三 国家自然科学基金委员会 50万元 2023 工程与材料科学
... ... ... ... ... ... ...

注意事项

  1. 首次运行需要手动登录青塔账号
  2. 登录成功后 Cookie 会自动保存,后续运行可能无需重复登录
  3. 如果 Cookie 过期,请删除 cookies.json 文件后重新运行
  4. 建议适当增加 --wait 参数值,确保登录完成
  5. 爬取过程中请勿关闭浏览器窗口
  6. 请遵守网站使用条款,合理控制爬取频率

常见问题

Q: 提示"未找到数据"怎么办?

A: 请检查以下几点:

  • 是否已成功登录账号
  • 关键词是否正确
  • 年份范围内是否有相关项目
  • 尝试增加 --wait 参数值

A: 删除项目目录下的 cookies.json 文件,重新运行程序并手动登录。

bash 复制代码
rm cookies.json
python scrape_fund.py --keyword "关键词" --wait 60

Q: 如何修改爬取速度?

A: 可以在源码中修改 time.sleep() 的参数值。建议不要设置过快,以免触发反爬机制。

Q: CSV 文件用 Excel 打开乱码?

A: 程序已使用 utf-8-sig 编码,支持 Excel 直接打开。如仍有问题,可尝试用记事本打开后另存为 ANSI 编码。

数据字段说明

字段 说明
题目 项目名称
受资机构 承担项目的机构
负责人 项目负责人姓名
资助机构 提供资助的机构(如国家自然科学基金委员会)
金额 资助金额(万元)
立项年份 项目立项的年份
申报领域 项目所属的学科领域

免责声明

本工具仅供学习和研究使用。

相关推荐
love530love11 小时前
Ubuntu系统通过Homebrew安装Lightpanda完整实战教程(含端口占用排坑)
大数据·linux·运维·人工智能·elasticsearch·搜索引擎
V哥AI增长11 小时前
ChatGPT/Perplexity引用机制解析:AI搜索引擎的语义解析与信任评估体系
人工智能·搜索引擎·chatgpt
celiahul11 小时前
当搜索引擎变成“问答机器人”,你的网站该如何适配?
网络·人工智能·搜索引擎·内容运营·外贸推广
小白学大数据1 天前
把 Modbus 轮询塞进 Trio 的异步循环:内存映射与定时采集实战
网络·python·搜索引擎
circuitsosk1 天前
大规模离线数据管道构建:样本获取、清洗、加工与合成
人工智能·python·机器学习·搜索引擎
LaughingZhu1 天前
Product Hunt 每日热榜 | 2026-08-02
前端·神经网络·react.js·搜索引擎·前端框架
Elastic 中国社区官方博客1 天前
Elasticsearch:语义搜索快速入门
大数据·人工智能·elasticsearch·搜索引擎·全文检索
zhbcddxr2 天前
GEO选择指南类内容效能测评:决策辅助与可见度提升排行
搜索引擎
LaughingZhu3 天前
Product Hunt 每日热榜 | 2026-08-01
人工智能·深度学习·神经网络·搜索引擎·百度
ab7753732003 天前
新韩剧《毛骨悚然的恋爱》(2026) NF原版1080P画质,自带内封简中字幕 夸克网盘分享,支持在线播放
经验分享·搜索引擎·生活