您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python实现简单的索引排序与搜索功能

51自学网 2021-10-30 22:44:51
  python
这篇教程Python实现简单的索引排序与搜索功能写得很实用,希望能帮到您。

今天,我上的课,学了索引排序与搜索。让我们用Python实现,觉得有点意思就跟大家分享一波。

代码如下图:

import requestsimport redef News_Spider():#定义一个爬虫    url = 'https://news.sina.com.cn/'#url地址,新浪新闻    headers = {#请求头        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'    }    response = requests.get(url,headers,verify=False)#针对https,采用verify=False    response.encoding='utf-8'#编码方式    html = response.text#获取页面源代码    #print(html)#打印源代码    reg = 'target="_blank">(.*?)</a>'#设置规则    content = re.findall(reg,html)#从页面源代码中筛选    ls = []#定义一个空列表    for c in content:        if '<' in c:            continue        else:            if len(c) > 6 and '客户端' not in c:                #print(c)                ls.append(c)            else:                continue    docu_set = {}#定义一个字典    for l in range(len(ls)):        docu_set['d{}'.format(l+1)] = ls[l]#格式化方法,从1开始    return docu_setdef change_set():    all_words = []#定义一个空列表用于存储    docu_set = News_Spider()    for i in docu_set.values():        cut = i.split()#分词        all_words.extend(cut)#添加分词    set_all_words = set(all_words)    return set_all_words    #print(set_all_words)def reverse_index():    invert_index = dict()#定义空字典    set_all_words = change_set()#将返回值传递给变量    docu_set = News_Spider()    for b in set_all_words:        temp = []        for k in docu_set.keys():            field = docu_set[k]            split_field = field.split()            if b in split_field:                temp.append(k)        invert_index[b] = temp    print(invert_index)    return invert_indexdef Select():    docu_set = News_Spider()    invert_index = reverse_index()    news = []    # for i in invert_index:    #     print(invert_index[i])    while True:        Find = str(input('请输入查找内容:'))        if Find == '不查了':            break        for Contetnt in invert_index:#循环每一个键            if Find in Contetnt:#如果输入在键的字符串中                Result = invert_index[Contetnt]#循环出字典中每一个对应的值                #print(Result)                for r in Result:#循环每一个值                    if r in docu_set.keys():#如果值在字典中                        news.append(docu_set[r])#列表增加字典docu_set的值                        print(docu_set[r])#打印输出字典的值                    else:                        continue            else:                if Find not in Contetnt:                    news.append('很抱歉,没有找到更多内容!!')        #news = set(news)        for n in news:            if '很抱歉' in n:                print(n)                break            else:                print(n)def main_function():#定义一个主方法    News_Spider()    change_set()    reverse_index()    Select()if __name__ == '__main__':#程序入口    main_function()

运行结果如下图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关于代码的解释,我写在注释中了。

到此这篇关于Python实现简单的索引排序与搜索功能的文章就介绍到这了,更多相关python实现索引排序和搜索内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


机器深度学习二分类电影的情感问题
python PyQt5 爬虫实现代码
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。