您好,登錄后才能下訂單哦!
使用Python怎么實(shí)現(xiàn)一個(gè)索引排序功能?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
import requests import re def News_Spider():#定義一個(gè)爬蟲 url = 'https://news.sina.com.cn/'#url地址,新浪新聞 headers = {#請(qǐng)求頭 '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)#針對(duì)https,采用verify=False response.encoding='utf-8'#編碼方式 html = response.text#獲取頁面源代碼 #print(html)#打印源代碼 reg = 'target="_blank">(.*?)</a>'#設(shè)置規(guī)則 content = re.findall(reg,html)#從頁面源代碼中篩選 ls = []#定義一個(gè)空列表 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 = {}#定義一個(gè)字典 for l in range(len(ls)): docu_set['d{}'.format(l+1)] = ls[l]#格式化方法,從1開始 return docu_set def change_set(): all_words = []#定義一個(gè)空列表用于存儲(chǔ) 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('請(qǐng)輸入查找內(nèi)容:')) if Find == '不查了': break for Contetnt in invert_index:#循環(huán)每一個(gè)鍵 if Find in Contetnt:#如果輸入在鍵的字符串中 Result = invert_index[Contetnt]#循環(huán)出字典中每一個(gè)對(duì)應(yīng)的值 #print(Result) for r in Result:#循環(huán)每一個(gè)值 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('很抱歉,沒有找到更多內(nèi)容??!') #news = set(news) for n in news: if '很抱歉' in n: print(n) break else: print(n) def main_function():#定義一個(gè)主方法 News_Spider() change_set() reverse_index() Select() if __name__ == '__main__':#程序入口 main_function()
運(yùn)行結(jié)果如下圖:
看完上述內(nèi)容,你們掌握使用Python怎么實(shí)現(xiàn)一個(gè)索引排序功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。