欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)簡單的索引排序與搜索功能

 更新時間:2021年04月14日 10:36:00   作者:Mr.Pan_學狂  
這篇文章主要介紹了Python實現(xiàn)簡單的索引排序與搜索功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

今天,我上的課,學了索引排序與搜索。讓我們用Python實現(xiàn),覺得有點意思就跟大家分享一波。

代碼如下圖:

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>'#設置規(guī)則
    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('請輸入查找內(nèi)容:'))
        if Find == '不查了':
            break
        for Contetnt in invert_index:#循環(huán)每一個鍵
            if Find in Contetnt:#如果輸入在鍵的字符串中
                Result = invert_index[Contetnt]#循環(huán)出字典中每一個對應的值
                #print(Result)
                for r in Result:#循環(huán)每一個值
                    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():#定義一個主方法
    News_Spider()
    change_set()
    reverse_index()
    Select()

if __name__ == '__main__':#程序入口
    main_function()

運行結果如下圖:

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

關于代碼的解釋,我寫在注釋中了。

到此這篇關于Python實現(xiàn)簡單的索引排序與搜索功能的文章就介紹到這了,更多相關python實現(xiàn)索引排序和搜索內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python基于jieba分詞實現(xiàn)snownlp情感分析

    Python基于jieba分詞實現(xiàn)snownlp情感分析

    情感分析(sentiment analysis)是2018年公布的計算機科學技術名詞,它可以根據(jù)文本內(nèi)容判斷出所代表的含義是積極的還是負面的等。本文將通過jieba分詞實現(xiàn)snownlp情感分析,感興趣的可以了解一下
    2023-01-01
  • GELU激活函數(shù)算法

    GELU激活函數(shù)算法

    這篇文章主要為大家介紹了GELU激活函數(shù)算法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Django?Middleware自定義中間件及作用詳解

    Django?Middleware自定義中間件及作用詳解

    這篇文章主要為大家介紹了Django?Middleware自定義中間件示例及其作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • opencv 閾值分割的具體使用

    opencv 閾值分割的具體使用

    這篇文章主要介紹了opencv 閾值分割的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • python argparse模塊通過后臺傳遞參數(shù)實例

    python argparse模塊通過后臺傳遞參數(shù)實例

    這篇文章主要介紹了python argparse模塊通過后臺傳遞參數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python格式化輸出字符串方法小結【%與format】

    Python格式化輸出字符串方法小結【%與format】

    這篇文章主要介紹了Python格式化輸出字符串方法,結合實例形式總結分析了使用%與format函數(shù)進行字符串格式化操作相關實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2018-10-10
  • Python處理日期和時間的方法總結

    Python處理日期和時間的方法總結

    這篇文章主要介紹了Python時間和日期的處理方法總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-03-03
  • python實現(xiàn)圖片壓縮代碼實例

    python實現(xiàn)圖片壓縮代碼實例

    這篇文章主要介紹了python實現(xiàn)圖片壓縮代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Python實現(xiàn)將MongoDB中的數(shù)據(jù)導入到MySQL

    Python實現(xiàn)將MongoDB中的數(shù)據(jù)導入到MySQL

    這篇文章主要為大家詳細介紹了如何通過Python封裝一個將?MongoDB?中的數(shù)據(jù)導入到?MySQL?中的?Python?工具類?MongoToMysql,感興趣的可以了解一下
    2023-05-05
  • Numpy中np.dot與np.matmul的區(qū)別詳解

    Numpy中np.dot與np.matmul的區(qū)別詳解

    本文主要介紹了Numpy中np.dot與np.matmul的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02

最新評論