> # ♻️ 资源
> **大小:** 43.6MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100013276**](https://www.yuque.com/sxbn/ks/100013276)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/88329405**](https://download.csdn.net/download/s1t16/88329405)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 基于Python实现的通用小规模搜索引擎
## 1.项目简介
### 1.1背景
《信息内容安全》网络信息内容获取技术课程项目设计
- 一个至少能支持10个以上网站的爬虫程序,且支持增量式数据采集;并至少采集10000个实际网页;
- 针对采集回来的网页内容, 能够实现网页文本的分类;
- 可进行重复或冗余网页的去重过滤;
- 对经去冗以后的内容建立倒排索引;
- 采用PageRank算法实现搜索结果的排序;
- 支持自然语言的模糊检索;
- 可实现搜索结果的可视化呈现。
- 可以在线记录每次检索的日志,井可对日志数据进统计分析和关联挖掘。
### 1.2运行环境
- 平台:全平台
- jdk 1.8.0
- ElasticSearch 7.4.0
- Python 3.6 及以上
- 安装依赖模块
- PageRank算法、AI文本分类与上传
```python
> pip install paddlepaddle numpy elasticsearch
```
- 数据的爬取与预处理
```python
> pip install requests bs4
```
### 1.3运行步骤
#### 安装配置ElasticSearch并启动
- [下载](https://www.elastic.co/cn/downloads/elasticsearch) 并解压Elasticsearch,详细步骤自行搜索
- 可以从 apt 和 yum 的软件仓库安装,也可以使用 Windows MSI 安装包安装
- [安装](https://github.com/medcl/elasticsearch-analysis-ik/releases) IK 中文分词器,详细步骤自行搜索
- 创建索引
```json
PUT http://127.0.0.1/page
{
"settings": {
"number_of_shards": "5",
"number_of_replicas": "0"
},
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "ik_max_word"
},
"weight": {
"type": "double"
},
"content" : {
"type" : "text",
"analyzer": "ik_max_word"
},
"content_type": {
"type": "text"
},
"url": {
"type": "text",
"analyzer": "ik_max_word"
},
"update_date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
```
- 启动 ElasticSearch ,在 bash 中执行 `bin/elasticsearch` 或者在 Windows 的 cmd、powershell 执行 `bin\elasticsearch.bat`
#### 启动Web服务
```
> cd WebApp
> java -jar *.jar
```
![15ed4c153a761883c402d556ff1a1bf4.gif](https://cdn.nlark.com/yuque/0/2023/gif/2469055/1694483090561-77018d4f-949d-4e14-8387-3152506d0d4d.gif#averageHue=%232b2b2b&clientId=uedcf728a-ab3e-4&from=paste&height=266&id=u2dfc0cc5&originHeight=332&originWidth=1504&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=242258&status=done&style=none&taskId=u8f2b120b-c0ba-4cfd-bb9d-dcc271bffc3&title=&width=1203.2)
#### 数据的爬取与预处理
```shell
> cd DataCrawler
> python crawler.py
```
![39a82656eed9996f7b35d07463633f99.gif](https://cdn.nlark.com/yuque/0/2023/gif/2469055/1694483124762-c7887121-fba7-4968-868a-4b9f9a2b3eac.gif#averageHue=%232c2b2b&clientId=uedcf728a-ab3e-4&from=paste&height=206&id=u9f35a50a&originHeight=257&originWidth=1045&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=243549&status=done&style=none&taskId=u9e681920-627a-4e52-b1c8-f5e218a849c&title=&width=836)
#### 计算PageRank值
```shell
> cd DataProcess
> python PageRank.py
```
![042c82dc948f11a605fc7941f30d2a29.gif](https://cdn.nlark.com/yuque/0/2023/gif/2469055/1694483152924-b0d22671-52f6-4d97-916f-76b4a2826c32.gif#averageHue=%232b2b2b&clientId=uedcf728a-ab3e-4&from=paste&height=206&id=u04e9e43c&originHeight=257&originWidth=1019&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=98464&status=done&style=none&taskId=uf6bf7179-ab04-4e91-8bb6-46c878541d4&title=&width=815.2)
#### 利用AI进行文本分类并上传至ES
```shell
> cd DataProcess/Text_Classification
> python Classify.py
```
![6979d074ed3d940544871d9522eb597c.gif](https://cdn.nlark.com/yuque/0/2023/gif/2469055/1694483178262-40859b6e-e9c7-43cd-9dda-7539da282bdd.gif#averageHue=%232c2b2b&clientId=uedcf728a-ab3e-4&from=paste&height=206&id=u4c6d21cf&originHeight=257&originWidth=1019&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=111178&status=done&style=none&taskId=u1f7bd8f2-8969-4a6f-b236-93dd7de4598&title=&width=815.2)
## 2.需求分析
### 2.1数据描述
#### 2.1.1 静态数据
| 变量名 | 描述 |
| --- | --- |
| `thread_accoun` | 线程个数 |
| `initial_url` | 种子页面 |
#### 2.1.2 动态数据
| 变量名 | 描述 | 类型 |
| --- | --- | --- |
| `restricted_domain` | 限定域名 | 列表 |
| `banned_domain` | 禁止域名 | 列表 |
| `thread_account` | 线程个数 | 整型 |
| `total_pages` | 限定页面个数 | 整型 |
#### 2.1.3索引数据字典
页面(page)信息索引:
| 数据项名称 | 含义 | 别名 | 类型 | 备注 |
| --- | --- | --- | --- | --- |
| `title` | 网站标题 | | `text` | 使用`ik_max_word`
分词 |
| `weight` | PageRank值 | pr值,PR值 | `double` | |
| `content` | 网站中的内容 | | `text` | 使用`ik_max_word`
分词 |
| `content_type` | 网站中的内容分类 | | `text` | 文化, 娱乐, 体育, 财经, 房产, 汽车, 教育, 科技, 国际, 证券 |
| `url` | 网站的链接 | | `text` | 使用`ik_max_word`
分词 |
| `update_date` | 数据更新的时间 | | `date` | `yyyy-MM-dd HH:mm:ss`
||`yyyy-MM-dd`
||`epoch_millis` |
### 2.2. 数据采集
种子 url 数据从 init_url 列表中选取,并按照顺序,依次以各个 url 为起点进行递归的数据采集
爬取数据的url需要限制在 restricted_url 列表里面
### 2.3功能需求
#### 2.3.1 数据爬取与预处理功能
利用Python爬虫,执行以下步骤:
1. 开始
2. 选取一个链接作为起点
3. 如果爬取的网页总数达到要求,则结束,否则执行第 4 步
4. 爬取指定链接的相关信息,并获取当前网站中的所有链接
5. 对 4 中获取的网站中的所有链接中的每一条数据,执行过程3
爬取网站如下信息,详细描述见[3.4. 索引数据字典](#34-%E7%B4%A2%E5%BC%95%E6%95%B0%E6%8D%AE%E5%AD%97%E5%85%B8)
- title
- content
- content_type
- update_date
- url
- link(当前网站中包含的所有链接,用于计算pr值)
#### 2.3.2. 计算 PageRank 功能
根据`link`计算爬取下来的每个网站的PageRank值,迭代次数为50次。解决pr值呈周期性变化的问题。将pr值作为网站重要程度的指标,并补充到网站信息中
#### 2.3.3. AI 文本分类并提交到 ES 功能
利用深度学习,分析每个页面的content的类别。将类别补充到网站信息中,同时删除网站信息中不再使用的`link`项,形成最终数据(参考[3.4. 索引数据字典](#34-%E7%B4%A2%E5%BC%95%E6%95%B0%E6%8D%AE%E5%AD%97%E5%85%B8)),并上传至ES,供用户交互功能调用。
#### 2.3.4. 用户交互功能
设计WebApp,用户通过浏览器访问页面。用户提交搜索信息后,判断合法性,不合法则返回ERROR界面提示用户。如果合法,则后端代码从本地 E
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100013276 《信息内容安全》网络信息内容获取技术课程项目设计 一个至少能支持10个以上网站的爬虫程序,且支持增量式数据采集;并至少采集10000个实际网页; 针对采集回来的网页内容, 能够实现网页文本的分类; 可进行重复或冗余网页的去重过滤; 对经去冗以后的内容建立倒排索引; 采用PageRank算法实现搜索结果的排序; 支持自然语言的模糊检索; 可实现搜索结果的可视化呈现。 可以在线记录每次检索的日志,井可对日志数据进统计分析和关联挖掘。
资源推荐
资源详情
资源评论
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/TXT.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/GIF.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/GIF.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/GIF.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/GIF.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JAR.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 37 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- 2301_768900712024-03-10资源中能够借鉴的内容很多,值得学习的地方也很多,大家一起进步!
![avatar](https://profile-avatar.csdnimg.cn/fbed2db386fd4018b8f2474d6651545d_s1t16.jpg!1)
神仙别闹
- 粉丝: 2712
- 资源: 7668
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 小程序版图像分类算法对中文数字识别-不含数据集图片-含逐行注释和说明文档.zip
- 公交卡管理系统一个实验
- C语言学生成绩管理系统(信息可保存读取txt文件)
- 小程序版图像分类算法对电脑配件分类识别-不含数据集图片-含逐行注释和说明文档.zip
- 小程序版深度学习CNN训练识别8种水果-不含数据集图片-含逐行注释和说明文档.zip
- 小程序版基于深度学习对手势动作分类识别-不含数据集图片-含逐行注释和说明文档.zip
- 小程序版深度学习CNN训练识别手写数字图像中的数字分类-不含数据集图片-含逐行注释和说明文档.zip
- 小程序版python语言pytorch框架的图像分类10种动物识别-不含数据集图片-含逐行注释和说明文档.zip
- 小程序版通过CNN卷积神经网络的10种中草药识别-不含数据集图片-含逐行注释和说明文档.zip
- linux系统Ubuntu中双击图标重启ibus键盘
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)