场景
- 想从网络中获取到一位作者在期刊上总共发表过多少文章
- 想要搜索一篇文章,但是只记得作者和关键词
- 想要根据期刊名,年份来返回这个期刊在这几年发表了多少文章
上面这些都可以通过网络搜索引擎做到,但是离开了搜索引擎,我们对这些数据就无从得知,所以我们需要一个数据库。那我们的数据从哪里来呢,这就是爬虫项目的用武之地的,我们从互联网上的公开接口获取到对应文章信息并且进行存储,对爬虫任务的进度进行管理,实时掌控数据获取进度。接下来我们明确一些概念
术语 | 描述 |
---|---|
作者 | 撰写文章的个人,邮箱信息,可能关联多个期刊文章。 |
机构 | 机构名及机构所在位置 |
文章 | 期刊发表的学术成果,具有作者、通讯作者、机构、标题、摘要、发表的卷号期号、DOI、致谢、参考文献、关键词等信息。 |
关键词 | 描述文章核心主题的词汇,用于检索文章。 |
期刊 | 定期出版的学术刊物,包含多个卷(volume)和期(issue)。 |
爬虫任务 | 爬取目标数据源的单元操作,如“获取某作者的所有文章”。 |
任务进度 | 当前任务的完成状态,如页面处理数、提取数据量和入库数量。 |
数据源 | 提供目标信息的网络资源,如网页或 API。 |
提供一个查询页面,类似于 sciencedirect.com 的这个单页 可以网络搜索所有数据源然后聚合结果返回列表。用户可以选择这次查询结果创建一个爬虫任务,启动爬虫任务后可以将查询结果列表中的文章详情从数据源获取,序列化后写回我们的数据库。
并且提供一个本地查询页面,可以从我们数据库中查询各种文章相关信息和详情。
然后就是数据源、爬虫器以及爬虫任务的构建管理页面,负责对爬虫任务进行初始化、配置控制和状态可视化。
爬虫项目页面接口列表
接口 | HTTP 方法 | HTTP URI | 说明 |
---|---|---|---|
创建爬虫器 | POST | /crawler/spider | |
获取所有爬虫器 | GET | /crawler/spider | |
更新爬虫器 | PUT | /crawler/spider/{spider_id} | |
删除爬虫器 | DELETE | /crawler/spider/{spider_id} | |
创建序列器 | POST | /crawler/serializer | |
创建爬取任务 | POST | /crawler/task | 2.根据查询结果调用对应爬虫器创建任务 |
获取爬取任务详情 | GET | /crawler/task/{task_id} | |
获取所有爬取任务 | GET | /crawler/task | |
停止爬取任务 | POST | /crawler/task/stop | |
开始爬取任务 | POST | /crawler/task/start | 3.开始爬取任务,序列化提取 items 然后持久化存储 |
聚合查询 | GET | /crawler/search | 1.网络查询所有数据源然后聚合结果返回列表 |
本地查询 | GET | /crawler/localsearch |