资源简介

10000网页简单上手,代码和配置环境全部写好,傻瓜式操作。
执行文件顺序是
1.Spider.py进行爬取网页并分析
2.index.py生成倒排索引,idf文件
3.app.py运行搜索引擎
4.在默认浏览器输入 http://localhost:8080/ 进行检索

若要使用数据库
1.writeDB.py写倒排索引与idf(时间较长)
2.可以在summary.py切换from DB_search import s使用数据库

注意:
还需要停用词是stopwords.txt

资源截图

代码片段和文件信息

# coding:utf-8
from flask import Flask request render_template redirect url_for
import jieba
from flask_bootstrap import Bootstrap
from summary import  getsummary
from flask_paginate import Pagination get_page_args
import json
import time
app = Flask(__name__ static_url_path=‘‘)
bootstrap = Bootstrap(app)
with open(‘idf.json‘ ‘r‘) as f:#预加载idf文件
    idf = json.load(f)    
    
@app.route(“/“ methods=[‘POST‘ ‘GET‘])#设置检索首页的路由
def main():
    if request.method == ‘POST‘ and request.form.get(‘query‘):
        query = request.form[‘query‘]
        print(query)
        return redirect(url_for(‘search‘ query=query))
    
    return render_template(‘baidu.html‘)


@app.route(“/q/“ methods=[‘POST‘ ‘GET‘])#设置检索页的路由
def search(query):
    start=time.time()#开始计时
    page per_page offset = get_page_args(page_parameter=‘page‘
                                           per_page_parameter=‘per_page‘)
    terms = [i for i in jieba.cut_for_search(query.replace(“ “ ““)) if len(i)>1 and i in idf]#处理检索式
    terms.sort(key = lambda i:len(i)reverse=True)
    #获得摘要等信息    
    allllength= getsummary(termspage)#page=0返回0-9,page=1返回10-19
    result = highlight(alll terms)
    #实现分页
    pagination = Pagination(page=page per_page=10 total=length-1
                            css_framework=‘bootstrap4‘)
    a=time.time()-start#结束计时
    #将参数返回给网页
    return render_template(‘search.html‘ docs=result value=query length=lengthpagination=paginationt=str(‘%.3f‘%a))

#对关键词进行高亮
def highlight(alll terms):
    result = []
    titles=[]
    contents=[]

    for doc in alll[0]:#标题高亮
        for term in terms:
            doc=doc.replace(term ‘{}‘.format(term))
        titles.append(doc)
    i=0
    for doc in alll[1]:#正文高亮
        print(i)
        i+=1
        if doc != None:
            for term in terms:
                doc=doc.replace(term ‘{}‘.format(term))
        else:
            doc=“无法查询“
        contents.append(doc+“...“)
    for i in range(len(titles)):
        result.append([alll[2][i]contents[i]titles[i]])
    return result


if __name__ == “__main__“:
    jieba.add_word(‘重庆理工大学‘)#jieba词典扩充
    jieba.add_word(‘马克思‘)
    app.run(host=‘localhost‘ port=8080 debug=True)#http://localhost:8080/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2565  2020-01-07 10:50  小型搜索引擎程序\app.py

     文件       3914  2020-01-07 10:51  小型搜索引擎程序\DB_search.py

     文件       2756  2020-01-07 10:53  小型搜索引擎程序\index.py

     文件       3634  2020-01-07 10:53  小型搜索引擎程序\search.py

     文件       5177  2020-01-07 10:54  小型搜索引擎程序\Spider.py

     文件        661  2020-01-02 17:04  小型搜索引擎程序\static\baidu.html

     文件        628  2020-01-02 17:04  小型搜索引擎程序\static\css\baidu.css

     文件       5876  2019-12-24 10:35  小型搜索引擎程序\static\images\1.png

     文件       4230  2020-01-02 16:53  小型搜索引擎程序\static\images\2.jpg

     文件      85600  2020-01-02 16:45  小型搜索引擎程序\static\images\2.png

     文件       7877  2019-12-04 19:40  小型搜索引擎程序\static\images\baidu.jpg

     文件       2280  2019-12-24 10:36  小型搜索引擎程序\static\images\icon_book.png

     文件       3127  2020-01-02 09:40  小型搜索引擎程序\static\search.html

     文件          0  2018-12-22 15:22  小型搜索引擎程序\static\__init__.py

     文件       4753  2020-01-07 10:55  小型搜索引擎程序\summary.py

     文件        714  2020-01-02 17:46  小型搜索引擎程序\templates\baidu.html

     文件       3279  2020-01-02 17:45  小型搜索引擎程序\templates\search.html

     文件       1145  2020-01-07 10:55  小型搜索引擎程序\top_k.py

     文件       3200  2020-01-07 10:56  小型搜索引擎程序\writeDB.py

     文件       2668  2020-01-06 17:16  小型搜索引擎程序\__pycache__\DB_search.cpython-37.pyc

     文件       2401  2020-01-06 17:22  小型搜索引擎程序\__pycache__\search.cpython-37.pyc

     文件       4573  2020-01-06 17:22  小型搜索引擎程序\__pycache__\summary.cpython-37.pyc

     文件        880  2020-01-02 19:57  小型搜索引擎程序\__pycache__\top_k.cpython-37.pyc

     文件       2389  2020-01-06 17:16  小型搜索引擎程序\__pycache__\writeDB.cpython-37.pyc

     文件        581  2020-01-07 10:44  小型搜索引擎程序\环境配置文档.txt

     目录          0  2020-01-07 10:29  小型搜索引擎程序\static\css

     目录          0  2020-01-07 10:29  小型搜索引擎程序\static\images

     目录          0  2020-01-07 10:29  小型搜索引擎程序\static

     目录          0  2020-01-07 10:29  小型搜索引擎程序\templates

     目录          0  2020-01-07 10:29  小型搜索引擎程序\__pycache__

............此处省略4个文件信息

评论

共有 条评论