• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Scrapy的招生信息專(zhuān)題搜索引擎研究

      2022-01-20 13:29:24方錦文童樺茜
      電子制作 2021年24期
      關(guān)鍵詞:詳情頁(yè)爬蟲(chóng)搜索引擎

      方錦文,童樺茜

      (1.桂林電子科技大學(xué)信息科技學(xué)院,廣西桂林,541004;2.廣西城市建設(shè)學(xué)校,廣西桂林,541003)

      0 引言

      搜索引擎是一種專(zhuān)門(mén)在網(wǎng)絡(luò)上提供查詢服務(wù)的系統(tǒng),它把分布在網(wǎng)絡(luò)上的信息資源進(jìn)行收集、處理,然后經(jīng)過(guò)整理后方便人們查詢。目前像百度和Google這樣的大型搜索引擎能為用戶提供海量的信息查詢服務(wù),其查詢范圍遍布各行各業(yè),基本可以滿足各個(gè)領(lǐng)域的信息橫向搜索。也正是因?yàn)檫@類(lèi)通用搜索引擎所覆蓋領(lǐng)域廣闊,所以很難在搜索的同時(shí)兼顧到搜索的精準(zhǔn)度。其價(jià)值在于對(duì)大量的分散信息做信息導(dǎo)航,對(duì)于信息量相對(duì)集中、分類(lèi)類(lèi)別更詳細(xì)的某一特定領(lǐng)域的信息檢索就會(huì)表現(xiàn)出其縱向搜索的局限性。

      垂直搜索引擎的出現(xiàn)正是為了解決通用搜索引擎在特定領(lǐng)域下的搜索精度不高、主題偏移、搜索深度不夠等問(wèn)題。垂直搜索引擎專(zhuān)注于某一類(lèi)信息、專(zhuān)業(yè)領(lǐng)域、特定主題下的信息檢索,其追求的是專(zhuān)業(yè)性和檢索服務(wù)深度。對(duì)于大學(xué)招生信息主題的搜索引擎,則專(zhuān)注于提供各個(gè)學(xué)校招生信息、學(xué)校信息、招生專(zhuān)業(yè)等信息的檢索服務(wù)。

      1 系統(tǒng)工作原理

      系統(tǒng)主要由信息采集、信息預(yù)處理、信息檢索三部分組成。在信息采集部分,主要通過(guò)網(wǎng)絡(luò)爬蟲(chóng)抓取因特網(wǎng)上的網(wǎng)頁(yè)數(shù)據(jù)的方式,用構(gòu)建招生信息主題詞庫(kù)的過(guò)濾器過(guò)濾掉與招生信息不相關(guān)的網(wǎng)頁(yè)鏈接,然后把與招生信息相關(guān)的網(wǎng)頁(yè)信息存放到網(wǎng)頁(yè)庫(kù)中。在信息預(yù)處理部分通過(guò)索引器對(duì)對(duì)采集到的網(wǎng)頁(yè)庫(kù)建立索引方便系統(tǒng)查詢。信息檢索部分主要負(fù)責(zé)與用戶的直接對(duì)接,如圖1所示。

      圖1 主題搜索引擎總體框架

      用戶通過(guò)Web服務(wù)器界面接入系統(tǒng),輸入要查詢的內(nèi)容,檢索器與索引庫(kù)對(duì)接,在索引庫(kù)中搜索信息,用排序器對(duì)搜索結(jié)果進(jìn)行排序處理后返回給用戶。

      2 專(zhuān)題網(wǎng)絡(luò)爬蟲(chóng)構(gòu)建

      ■2.1 Scrapy爬蟲(chóng)框架

      Scrapy是基于 Python 實(shí)現(xiàn)的爬蟲(chóng)框架,其架構(gòu)清晰,模塊耦合度低[1]。可以應(yīng)用在包括數(shù)據(jù)挖掘,信息處理或存儲(chǔ)歷史數(shù)據(jù)等一系列的程序中,簡(jiǎn)單來(lái)說(shuō),Scrapy是一個(gè)可以爬取網(wǎng)站的數(shù)據(jù),提取數(shù)據(jù)的框架。

      Scrapy 框架組件及其中間件的功能如下[2]:

      (1)Scrapy Engine(引擎):串聯(lián)框架各個(gè)模塊,觸發(fā)事務(wù)處理流程,控制數(shù)據(jù)流在系統(tǒng)中所有組件中流動(dòng)。

      (2)Scheduler(調(diào)度器):負(fù)責(zé)管理待抓取 URL 隊(duì)列。接受請(qǐng)求后返回下一個(gè)要爬取的鏈接。

      (3)Downloader(下載器):向網(wǎng)站服務(wù)器發(fā)送訪問(wèn)頁(yè)面請(qǐng)求,獲取頁(yè)面數(shù)據(jù)并提供給引擎。

      (4)Spiders(爬蟲(chóng)):爬取指定網(wǎng)站的數(shù)據(jù)內(nèi)容,管理爬取規(guī)則和網(wǎng)頁(yè)解析規(guī)則等。

      (5)Item Pipeline(項(xiàng)目管道):處理被spider提取出來(lái)的item,包括數(shù)據(jù)清洗、驗(yàn)證及持久化(例如存取到數(shù)據(jù)庫(kù)中)等。

      (6)Middlewares(中間件):包括下載器中間件(Downloader middlewares)和Spider中間件(Spider middlewares),處理引擎與下載器、爬蟲(chóng)之間的請(qǐng)求及響應(yīng),其提供了一個(gè)簡(jiǎn)便的機(jī)制,通過(guò)插入自定義代碼來(lái)擴(kuò)展Scrapy功能。

      Scrapy框架安裝完成后,便可創(chuàng)建自己的爬蟲(chóng)項(xiàng)目,Scrapy爬蟲(chóng)項(xiàng)目結(jié)構(gòu)如圖2所示。

      圖2 項(xiàng)目文件結(jié)構(gòu)

      各文件功能如下[3]:

      (1)scrapy.cfg: 項(xiàng)目運(yùn)行的參數(shù)設(shè)定。

      (2)middlewares.py:爬蟲(chóng)程序中間件。

      (3)items.py: 項(xiàng)目中的item文件,管理待抓取的一些信息。

      (4)pipelines.py: 項(xiàng)目中的pipelines文件,對(duì)爬取的數(shù)據(jù)進(jìn)行清洗。

      (5)settings.py: 項(xiàng)目的設(shè)置文件。

      (6)spiders: 放置spider代碼的目錄。

      ■2.2 專(zhuān)題爬蟲(chóng)策略

      為使抓取的網(wǎng)頁(yè)與高校信息主題相關(guān)度更高,本文采用知名度較高的高校招生網(wǎng)作為初始目標(biāo)網(wǎng)站爬取數(shù)據(jù)。通過(guò)觀察目標(biāo)網(wǎng)頁(yè),在高校信息詳情頁(yè)部分,可以找到高校名字、類(lèi)型、聯(lián)系電話、地址、簡(jiǎn)介、招生計(jì)劃等信息,均包含在屬性值為class的li標(biāo)簽中。可以先獲取一級(jí)頁(yè)面的列表頁(yè)信息,在根據(jù)列表頁(yè)中的詳情頁(yè)URL來(lái)獲取詳情頁(yè)的數(shù)據(jù)。

      先在項(xiàng)目的全局性配置文件setting.py中,配置好項(xiàng)目的名稱(chēng)、下載延遲、Scrapy執(zhí)行的最大并發(fā)請(qǐng)求數(shù)等信息[4]。然后在數(shù)據(jù)模塊items.py文件中設(shè)置好要爬取的高校信息字段,然后通過(guò)scripy對(duì)目標(biāo)網(wǎng)頁(yè)的高校信息頁(yè)面進(jìn)行一級(jí)頁(yè)面的連接爬取和二級(jí)頁(yè)面的詳細(xì)內(nèi)容。在scripy文件中,通過(guò)start_urls = []設(shè)置初始目標(biāo)網(wǎng)站,通過(guò)allowed_domains = []設(shè)置允許爬取的范圍,在def parse()通過(guò)Xpath獲取到爬取的一級(jí)頁(yè)面的列表

      標(biāo)簽,通過(guò)遍歷列表
      標(biāo)簽獲得不同類(lèi)型的高校目錄。從中提取高校信息詳情頁(yè)的href屬性,就可以獲取所有的高校信息詳情頁(yè)鏈接。然后就可以對(duì)每一個(gè)高校信息詳情頁(yè)進(jìn)行數(shù)據(jù)爬取,利用Request請(qǐng)求,獲取服務(wù)器發(fā)回來(lái)的Respond響應(yīng)后,用Xpath提取高校信息詳情頁(yè)中的
      额尔古纳市| 嘉峪关市| 博野县| 安西县| 黄浦区| 文水县| 嘉兴市| 蓝山县| 宝兴县| 荆州市| 玉溪市| 井冈山市| 琼结县| 长寿区| 孝昌县| 白玉县| 古浪县| 藁城市| 辛集市| 华坪县| 赫章县| 类乌齐县| 岫岩| 广丰县| 漳州市| 肃北| 临高县| 都江堰市| 洞头县| 旌德县| 阿坝| 遂昌县| 英超| 大足县| 赤城县| 咸丰县| 蓬溪县| 平谷区| 泰和县| 富顺县| 镇原县|