文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用Python怎么实现一个索引排序功能

2023-06-14 13:02

关注

使用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怎么实现一个索引排序功能
使用Python怎么实现一个索引排序功能

看完上述内容,你们掌握使用Python怎么实现一个索引排序功能的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯