如何用Python构建SDU新闻网站搜索引擎?

摘要:信息检索课程设计sdu视点新闻全站Python爬虫爬取+索引构建+搜索引擎查询练习程序(1805)。 以前在gh仓库总结的内容,没想到被人转载不带出处,不如我自己来发一遍叭。 源代码:Github 爬虫功
信息检索课程设计sdu视点新闻全站Python爬虫爬取+索引构建+搜索引擎查询练习程序(1805)。 以前在gh仓库总结的内容,没想到被人转载不带出处,不如我自己来发一遍叭。 源代码:Github 爬虫功能使用Python的scrapy库实现,并用MongoDB数据库进行存储。 索引构建和搜索功能用Python的Whoosh和jieba库实现。(由于lucene是java库,所以pyLucene库的安装极其麻烦,因此选用Python原生库Whoosh实现,并使用jieba进行中文分词。) 搜索网页界面用django实现,页面模板套用BootCDN。 1 要求 以下是检索的基本要求:可以利用lucene、nutch等开源工具,利用Python、Java等编程语言,但需要分别演示并说明原理。 Web网页信息抽取 以山东大学新闻网为起点进行网页的循环爬取,保持爬虫在view.sdu.edu.cn之内(即只爬取这个站点的网页),爬取的网页数量越多越好。 索引构建 对上一步爬取到的网页进行结构化预处理,包括基于模板的信息抽取、分字段解析、分词、构建索引等。 检索排序 对上一步构建的索引库进行查询,对于给定的查询,给出检索结果,明白排序的原理及方法。 2 运行方式 运行sduspider/run.py来进行网络爬虫,这个过程将持续十多个小时,但可以随时终止,在下次运行时继续。 运行indexbuilder/index_builder.py来对数据库中的72000条数据构建索引,该过程将持续几个小时,但可以随时终止。 如果不熟悉Whoosh库的构建索引和query搜索功能,可以参考运行indexbuilder/sample.py。 运行indexbuilder/query.py来测试搜索功能。 运行searchengine/run_server.py打开搜索网页服务器,在浏览器中打开127.0.0.1:8000进入搜索页面执行搜索。 3 所需python库 scrapy requests pymongo whoosh jieba django 4 所需数据库 MongoDB Mongo Management Studio 可视化工具(可选) 5 爬虫特性 爬虫代码位于sduspider/目录下。
阅读全文