学术论文爬虫项目

这是一个基于 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 全文文件。请尊重知识产权。
相关推荐
维他奶糖615 小时前
Python 实战:Boss 直聘职位信息爬虫开发全解析
开发语言·爬虫·python
xcLeigh5 小时前
Python高效数据采集实战:基于IPIDEA代理的全方位教程
爬虫·python·数据采集·代理·request·ipidea
深蓝电商API6 小时前
Scrapy信号机制:监控爬虫全生命周期
爬虫·python·scrapy
天天进步20151 天前
从脚本到服务:5 分钟通过 Botasaurus 将你的爬虫逻辑转化为 Web API
前端·爬虫
深蓝电商API1 天前
Scrapy 爬虫异常处理与重试机制优化
爬虫·python·scrapy
SEO_juper1 天前
精准控制爬虫抓取:Robots.txt 核心配置解析与常见避坑指南
人工智能·爬虫·seo·数字营销
MoonPointer-Byte1 天前
【Python爬虫实战】用 Flet 把爬虫做成手机 App
爬虫·python·智能手机
深蓝电商API1 天前
Scrapy CrawlSpider规则提取器深度实战
爬虫·python·scrapy
写代码的【黑咖啡】2 天前
深入了解 Python 中的 Scrapy:强大的网络爬虫框架
爬虫·python·scrapy
上海云盾-高防顾问2 天前
WAF规则自定义实战指南:精准防护零误判
爬虫·安全·web安全