学术论文爬虫项目

这是一个基于 Python 3.12 编写的学术论文爬虫项目,专门用于从 IEEE Xplore 及相关计算机视觉会议(如 CVPR)获取论文的元数据。项目采用 MongoDB 进行数据存储,支持断点续爬,并提供了灵活的数据导出工具。

✨ 项目特性

  • 数据全面:抓取 URL、文章标题、发表年份、摘要、作者及作者单位信息。
  • 支持广泛:目前已支持 JSAC, TWC, TCOM, TVT, TMC, TON, TIFS, TAES, TITS, INFOCOM, CVPR 等顶级期刊和会议。
  • 断点续传:爬取过程中若因网络中断,重启程序可自动跳过已爬取内容,继续未完成的任务。
  • 防反爬策略 :内置请求等待机制,可配置 WAIT_NETWORK_TIME 以适应 IEEE 的访问频率限制。
  • 易于扩展:采用模块化设计,参照现有模板即可快速添加新的期刊或会议支持。

⚠️ 注意 :本项目仅爬取论文的元数据(Metadata),不提供下载 PDF 或爬取全文的功能。这不仅涉及技术限制,更涉及严重的版权和法律问题,请勿尝试修改代码以获取受版权保护的全文内容。

🛠️ 环境依赖

  • Python : 3.12
  • Database : MongoDB 8.0.15
  • Python Libraries : 详见 requirements.txt

安装步骤

  1. 克隆项目

    复制代码
    git clone git@github.com:wcy-hash/Crawler.git
    cd Crawler
  2. 安装依赖 建议使用虚拟环境:

    复制代码
    pip install -r requirements.txt
  3. 配置数据库 确保本地或远程 MongoDB 服务已启动。 打开 utils/db_api.py,配置你的 MongoDB 连接字符串(URI)。

📂 目录结构说明

Project_Root/

├── 📁 qikan/ # [核心] 期刊爬虫脚本文件夹

│ ├── jsac.py # IEEE JSAC 爬取脚本

│ ├── twc.py # IEEE TWC 爬取脚本

│ └── ... # 其他期刊脚本

├── 📁 huiyi/ # [核心] 会议爬虫脚本文件夹

│ ├── infocom.py # INFOCOM 爬取脚本

│ ├── cvpr.py # CVPR 爬取脚本

│ └── ... # 其他会议脚本

├── 📁 utils/ # [工具] 通用功能模块

│ ├── db_api.py # 数据库连接与操作封装

│ └── main_deal.py # 核心爬虫逻辑、请求封装、反爬延时控制

├── 📁 result/ # [输出] 导出的论文数据结果

├── 📄 main_get_paper.py # [入口] 数据导出与查询脚本

├── 📄 requirements.txt # 项目依赖列表

└── 📄 README.md # 项目说明文档

🚀 使用指南

启动爬虫 (获取数据)

每个期刊或会议都有独立的 Python 脚本。你可以根据需求运行特定的脚本。

示例:爬取 IEEE JSAC 期刊
复制代码
python qikan/jsac.py
示例:爬取 INFOCOM 会议
复制代码
python huiyi/infocom.py
  • 爬取原理
    1. 脚本读取内置的 visit_url_all_issue (过刊)、visit_url_early_access (优先出版) 或 visit_url_current_issue (当期)。
    2. 遍历分页,获取所有文章的基础信息(URL、标题、年份)存入 MongoDB。
    3. 再次遍历数据库中未完善的记录,访问具体文章页面,抓取摘要、作者和单位信息进行更新。

提示 :你可以在 utils/main_deal.py 中调整参数来控制爬取速度,避免被封 IP。

导出数据 (查询结果)

使用 main_get_paper.py 从数据库中提取数据并保存到 result 文件夹。

复制代码
python main_get_paper.py

main_get_paper.py 中,你可以自定义以下筛选条件:

  • 目标期刊/会议:指定导出哪些来源的数据。
  • 时间范围:例如只导出近 3 年的文章。
  • 存储限制:设置文件分割大小,避免单个结果文件过大。
  • 其他限制 :支持其他限制query_filter参数的设置。

📋 目前支持列表

类型 缩写 全称/描述
期刊 JSAC IEEE Journal on Selected Areas in Communications
期刊 TWC IEEE Transactions on Wireless Communications
期刊 TCOM IEEE Transactions on Communications
期刊 TVT IEEE Transactions on Vehicular Technology
期刊 TMC IEEE Transactions on Mobile Computing
期刊 TON IEEE/ACM Transactions on Networking
期刊 TIFS IEEE Transactions on Information Forensics and Security
期刊 TAES IEEE Transactions on Aerospace and Electronic Systems
期刊 TITS IEEE Transactions on Intelligent Transportation Systems
会议 INFOCOM IEEE International Conference on Computer Communications
会议 CVPR IEEE/CVF Conference on Computer Vision and Pattern Recognition

⚙️ 二次开发与扩展

如果你需要添加新的 IEEE 期刊或会议:

  1. qikan/huiyi/ 文件夹下新建一个 .py 文件(参考现有的 twc.py)。
  2. 找到目标期刊在 IEEE Xplore 上的主页 URL。
  3. 修改代码中的 visit_url_* 变量。
  4. 运行脚本即可,utils/main_deal.py 中的通用逻辑会自动处理分页和详情抓取。

⚠️ 免责声明

  • 合法合规:本项目仅用于学术研究和个人学习目的。
  • 频率限制 :在使用爬虫时,请务必控制请求频率(通过 WAIT_NETWORK_TIME),以免对 IEEE 或相关网站造成访问压力。
  • 版权问题 :本项目严禁用于爬取、传播或存储受版权保护的 PDF 全文文件。请尊重知识产权。
相关推荐
深蓝电商API8 小时前
爬虫限速与并发控制:令牌桶、漏桶、动态调整全解析
爬虫
爱打代码的小林9 小时前
网络爬虫基础
爬虫·python
B站计算机毕业设计之家10 小时前
大数据:基于python唯品会商品数据可视化分析系统 Flask框架 requests爬虫 Echarts可视化 数据清洗 大数据技术(源码+文档)✅
大数据·爬虫·python·信息可视化·spark·flask·唯品会
Data_agent19 小时前
1688获得1688店铺详情API,python请求示例
开发语言·爬虫·python
是有头发的程序猿1 天前
如何设计一个基于类的爬虫框架
爬虫
小尘要自信1 天前
爬虫入门与实战:从原理到实践的完整指南
爬虫
sugar椰子皮1 天前
【爬虫框架-0】从一个真实需求说起
爬虫
月光技术杂谈1 天前
基于Python+Selenium的淘宝商品信息智能采集实践:从浏览器控制到反爬应对
爬虫·python·selenium·自动化·web·电商·淘宝
sugar椰子皮1 天前
【爬虫框架-2】funspider架构
爬虫·python·架构