python怎样写一个索引排序功能?
Admin 2021-05-18 群英技术资讯 1622 次浏览
这篇文章主要给大家分享如何Python实现索引排序功能,小编觉得是比较有意思的,因此与大家分享一下,下面我们就一起来看看具体的实现吧。
代码如下图:
import requests
import re
def 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_set
def 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_index
def 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相关内容,大家可以关注其他文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python函数中闭包和延迟绑定详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
这篇文章主要介绍了Python的函数使用,在两种python循环语句的使用中,不仅仅是循环条件达到才能跳出循环体。所以,在对python函数进行阐述之前,先对跳出循环的简单语句块进行介绍,需要的朋友可以参考一下
ython怎么样实现杨辉三角?首先我们需要知道什么是杨辉三角。杨辉三角就是二项式系数在三角形中的一种几何排列。如下图所示就是杨辉三角,在欧洲,这个表被叫做帕斯卡三角形。接下来我们看基于Python的杨辉三角的实现。
这篇文章主要为大家详细介绍了python实现学生管理系统开发,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要介绍了python 通过KNN来填充缺失值的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008