# 0 简介
今天学长向大家介绍适合作为毕设的项目:
毕设分享 基于Python实现的新闻搜索引擎(源码+论文)
项目获取:
https://gitee.com/assistant-a/project-sharing
基于Python实现的新闻搜索引擎
一、Scraper - 爬虫
使用的库有:
-
requests
-
BeautifulSoup4
爬虫分为两部分,网络通信部分(scraper.py)与适配器(adapers/*.py)部分。
1.1 网络通信部分
网络部分也分为两部分:
-
第一部分是初始化部分,使用适配器提供的链接,下载数据后发给适配器(适配器用这些链接捕获哪些链接是下一步需要爬取的)
-
第二部分是爬取新闻的部分,适配器在前一步里得到了大量的新闻链接,通信部分便用这些链接进行爬取。爬取之后,再将这些数据传入适配器,然后得到返回值(包含新闻的ID、标题、内容、日期、来源)
全部爬完之后,将新闻数据以json格式存入到文件里,其中新闻的内容是html
,不是纯文本(保留了原网站的一些排版、外链图片等信息)。
这一部分是多线程(默认是10个线程)的,也就是说适配器必须要是线程安全的。
1.2 适配器部分
适配器部分为通信部分提供链接(url)、报文头(headers)、请求参数(params),需要实现7个函数:
-
hasNextInit()
:判断是否有下一个初始链接,有的话返回True -
nextInitParam()
:返回下一个初始链接的信息,包括op和上述的url、headers、para