基于Python的Django框架实现的人物信息检索系统
1 简介
这是一个利用Django搭建的一个人物信息检索系统,大约从Wikipedia爬取了10000 个人物信息,并且提取了其中 Infobox 的对应信息。
对于 Wikipedia 中爬取的信息,我们重新组织了其格式并且进行显示。
左侧为搜索页面,右侧为搜索结果,匹配的字段被高亮显示。
对于已经爬取的信息,我们提供了一个对其进行搜索的页面,可以根据关键词在 其中搜索,并且还可以根据原先 Infobox 中的标题进行特定字段的查询(例如 Born、 Died、Name、Nationality 等),同时还可以让用户自行添加可以查询的字段。
搜索的结果按照匹配的关键字个数从高到底排序后显示,如果结果过多将会分页显 示。同时匹配的关键字会被高亮标出。
左侧为搜索结果过多时的分页显示效果,右侧为按照字段搜索 Born 中含 1997 的人物结果。
Alan Turing 信息的展现。
2 部分实现
爬虫部分利用 BeautifulSoup 来处理获取的页面,提取 Infobox 中的信息。
具体来说,人物超链接的爬取是通过寻找 ID 为 mw-content-text 的元素下所有 li 标签的第一个超链接来实现的。在爬取完毕后检查是否存在 infobox,如果存在则开始 提取信息。由于其中信息具有一定规律(例如大部分信息是以标题、内容的形式来组织 的),只需要用 BeautifulSoup 提取相应的
关于数据的存储,在提取出信息后利用 JSON 来保存在 sqlite 数据库中,并且额外 提取出一个关键字字符串用于搜索。对于每个人物都会分配一个唯一的 ID 以方便索引。 分页功能利用了 Django 自带的 Paginator 类。查询关键词的高亮以及自定义字段 搜索框的增加与删除使用 Javascript 在前端完成。
参考文献
- 文本搜索引擎的探究与设计(华南理工大学·张立)
- 基于Docker的智能云平台系统的设计与实现(华南理工大学·曾圣钊)
- XX公司人力资源管理系统的设计与实现(电子科技大学·龚畅)
- 基于JAVA平台的企业人事档案管理系统的设计与实现(吉林大学·王晓君)
- 基于JAVA平台的企业人事档案管理系统的设计与实现(吉林大学·王晓君)
- 基于J2EE的分布式信息检索查询平台的研究(北京化工大学·高峰)
- 基于J2EE的分布式信息检索查询平台的研究(北京化工大学·高峰)
- 基于云的统一身份智能信息管理系统设计实现(华南理工大学·水凯凯)
- 基于Docker的智能云平台系统的设计与实现(华南理工大学·曾圣钊)
- 网络新闻中人物识别系统的设计与实现(北京邮电大学·刘畅)
- 基于Docker的智能云平台系统的设计与实现(华南理工大学·曾圣钊)
- 基于Python的非结构化数据检索系统的设计与实现(南京邮电大学·董海兰)
- 基于JavaEE和XML的分布式信息检索系统设计与实现(山东大学·牛拥军)
- 基于Java平台的网络资源搜索系统的设计与实现(电子科技大学·李梦雅)
- XX公司人力资源管理系统的设计与实现(电子科技大学·龚畅)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码向导 ,原文地址:https://bishedaima.com/yuanma/35271.html