馮思度 楊健葉 韓煦
摘? 要:醫(yī)療衛(wèi)生信息對于人們了解、獲取醫(yī)療資源十分重要,其準確性和實時性則尤其重要。為了方便準確而快速地檢索到醫(yī)療衛(wèi)生信息,需要建設(shè)一個和醫(yī)療衛(wèi)生信息相關(guān)的專題搜索網(wǎng)站。針對上述情況,首先設(shè)計基于主題的網(wǎng)絡(luò)爬蟲功能,然后采用MS SQL Server 2008作為數(shù)據(jù)存儲、Visual Studio.NET2010作為開發(fā)工具實現(xiàn)專題搜索網(wǎng)站及其網(wǎng)絡(luò)爬蟲的設(shè)計。經(jīng)過實際測試與運行表明,該系統(tǒng)能夠滿足基本的醫(yī)療信息專題搜索的要求。
關(guān)鍵詞:搜索引擎;網(wǎng)絡(luò)爬蟲;醫(yī)療衛(wèi)生信息;專題網(wǎng)站
中圖分類號:TP311.1? ? ? ?文獻標識碼:A 文章編號:2096-4706(2019)10-0023-03
Abstract:The medical and health information is very important for people to understand and obtain medical resources,and its accuracy and real-time are particularly important. In order to retrieve medical and health information quickly and conveniently,a special search website related to medical and health information is needed. In view of the above situation,a search website with its web crawler of subject topic were designed,and then using MS SQL Server 2008 as DBMS and Visual Studio.NET 2010 as development tools develop these. Test and operation showed that the system meets the requirements of basic medical information subject search.
Keywords:search engine;web crawler;medical and health information;special subject website
0? 引? 言
隨著互聯(lián)網(wǎng)的信息的飛速增長,2018年《中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告》指出,截止至2017年12月,中國網(wǎng)站數(shù)量為533萬、增率為10.6%,中國網(wǎng)頁數(shù)量約為2604億個,年增長10.3%。如何從這些蘊含海量信息的互聯(lián)網(wǎng)中準確找到所需的相關(guān)內(nèi)容是Web信息獲取的關(guān)鍵所在[1]。在此背景下,搜索引擎成為人們從互聯(lián)網(wǎng)快速檢索、獲取信息的重要手段[2]。搜索引擎對于信息的抓取基本上是以全面廣泛的方式,當使用關(guān)鍵詞進行搜索的時候,它會展現(xiàn)出很多與之相關(guān)的信息。但是這種方式也有著一些不足之處。當需要對某些專題信息,如醫(yī)療衛(wèi)生信息、畢業(yè)生招聘信息等進行搜索時,綜合搜索引擎就不能很好地滿足要求[1,3,4]。因此需要為某一專題建立針對性的專題搜索網(wǎng)站。而設(shè)計一個專題搜索網(wǎng)站的核心問題之一是搜索引擎中的網(wǎng)絡(luò)爬蟲的設(shè)計與實現(xiàn),以便自動進行萬維網(wǎng)網(wǎng)頁的抓取并將其保存下來用于搜索引擎之后生成索引供用戶搜索[5]。此外,針對醫(yī)療衛(wèi)生信息建立一個專題搜索網(wǎng)站,有助于人們獲取及時準確的醫(yī)療衛(wèi)生信息,這對人們就醫(yī)、診療等有著很好的現(xiàn)實意義。
針對醫(yī)療衛(wèi)生信息主題搜索的需求,本文設(shè)計開發(fā)了一個醫(yī)療信息相關(guān)搜索引擎的網(wǎng)絡(luò)爬蟲模塊。爬蟲專門用于在互聯(lián)網(wǎng)上爬取與醫(yī)療相關(guān)的信息,從而可以更加專業(yè)化、定制化地檢索到所需要的醫(yī)療衛(wèi)生信息。
1? 網(wǎng)絡(luò)爬蟲的工作原理及關(guān)鍵技術(shù)
網(wǎng)絡(luò)爬蟲(也稱網(wǎng)絡(luò)蜘蛛、網(wǎng)絡(luò)機器人)是用于抓取網(wǎng)絡(luò)資源的計算機程序,是搜索引擎的重要組成部分。網(wǎng)絡(luò)爬蟲通過全面和快速地向分析系統(tǒng)和索引系統(tǒng)提供網(wǎng)頁數(shù)據(jù),起到搜索引擎的數(shù)據(jù)支撐作用[6]。網(wǎng)絡(luò)爬蟲通過網(wǎng)頁上的鏈接關(guān)系來分析和尋找網(wǎng)頁,讀取網(wǎng)頁內(nèi)容,通過種子站點尋找下一個網(wǎng)頁,周而復始,直到把所需的所有網(wǎng)頁抓取完畢。
針對醫(yī)療衛(wèi)生方面的網(wǎng)絡(luò)爬蟲設(shè)計需要以下三個關(guān)鍵技術(shù)[7]:
(1)信息收集和存儲技術(shù)(即網(wǎng)頁抓取優(yōu)先策略,決定使用何種待爬行URL的訪問次序);
(2)信息預處理技術(shù)(即關(guān)鍵詞的提取、倒排索引的建立);
(3)信息檢索及處理技術(shù)。
2? 網(wǎng)絡(luò)爬蟲系統(tǒng)設(shè)計
2.1? 網(wǎng)絡(luò)爬蟲模塊的設(shè)計
網(wǎng)絡(luò)爬蟲程序可以實現(xiàn)對指定URL內(nèi)容、標題和相應的鏈接的爬取,并根據(jù)爬取到的新鏈接進行迭代爬取工作。常用的爬取策略有廣度優(yōu)先遍歷和深度優(yōu)先遍歷。本網(wǎng)絡(luò)爬蟲采用廣度優(yōu)先遍歷的策略,主要基于以下三個原因:
(1)重要的網(wǎng)頁往往離種子比較近,就像用戶打開新聞網(wǎng)站的時候看到的往往都是最熱門的新聞,隨著不斷的深入瀏覽,用戶所看到的網(wǎng)頁的重要性越來越低;
(2)萬維網(wǎng)的實際深度并不深,而且橫向價值密度較高[8,9]。而且到達某一個網(wǎng)頁總會存在一個很短的路徑,廣度優(yōu)先遍歷會以很快的速度到達這個網(wǎng)頁;
(3)相對于深度優(yōu)先遍歷的策略來說,廣度優(yōu)先遍歷的策略不會存在短時間不斷地訪問同一臺服務器的問題,也不會輕易陷入無限循環(huán)的文檔樹之中[10]。
2.2? 網(wǎng)頁的預處理模塊設(shè)計
2.2.1? 索引網(wǎng)頁庫
網(wǎng)頁信息預處理的第一步就是為原始網(wǎng)頁建立索引,在實現(xiàn)索引網(wǎng)頁庫,有了索引之后,就可以為搜索引擎提供網(wǎng)頁快照的相關(guān)功能;第二步是針對索引網(wǎng)頁庫進行網(wǎng)頁切分,將每一篇網(wǎng)頁轉(zhuǎn)化為一組次的集合;最后一步是將網(wǎng)頁到索引詞的映射轉(zhuǎn)變成為索引詞到網(wǎng)頁的映射,這樣做之后形成倒排文件和相應的索引詞表,過程如圖1所示。
2.2.2? 網(wǎng)頁編碼的識別與分析
在網(wǎng)頁預處理的時候,對于中文的網(wǎng)頁我們需要對其進行切詞,在這之前我們需要對網(wǎng)頁的編碼進行識別。一般的幾種編碼識別方式有這幾種:第一種是從HTTP中head頭部里面的charset內(nèi)容獲得相對應的編碼方式;第二種是從head頭部中的meta標簽的charset屬性獲得編碼方式;第三種是從網(wǎng)頁頁面的語言類型來推測一個編碼方式,這種方式的實現(xiàn)有些困難。
2.2.3? 分析網(wǎng)頁和建立倒排文件
首先進行網(wǎng)頁的正文信息提取和正文信息切分這兩個階段,在得到網(wǎng)頁的正文信息之后,系統(tǒng)調(diào)用相對應的切詞模塊可以獲得正向的索引,在建立完成正向的索引之后,使用相應的算法建立倒排索引和相應的倒排文件,處理過程如圖2所示。
2.3? 信息檢索服務模塊設(shè)計
在完成前面的網(wǎng)頁抓取和網(wǎng)頁的預處理之后,就是信息檢索服務的模塊了。檢索服務包括獲取用戶輸入的關(guān)鍵詞、對關(guān)鍵詞進行相應的檢索、最后獲得與關(guān)鍵詞相匹配的結(jié)果并且以一定的排序方法顯示給用戶。比較典型的排序方法就是谷歌的PageRank(PR)和百度的競價排名方法。本網(wǎng)絡(luò)爬蟲設(shè)計采用的是一種基于谷歌PR方法和實際的醫(yī)療衛(wèi)生信息情況相結(jié)合的方法。
2.4? 數(shù)據(jù)庫關(guān)鍵表邏輯結(jié)構(gòu)設(shè)計
數(shù)據(jù)庫中表用于爬取到的網(wǎng)頁信息,本系統(tǒng)中部分主要表結(jié)構(gòu)如表1、2所示。
3? 網(wǎng)絡(luò)爬蟲系統(tǒng)的實現(xiàn)
首先利用網(wǎng)絡(luò)爬蟲程序來爬取和醫(yī)療相關(guān)的信息。在指定爬取的URL和爬取獲取的文件保存位置后,就可以爬取網(wǎng)頁信息了,在完成爬取后進行網(wǎng)頁文件的存儲。然后將獲取到的網(wǎng)頁的標題和鏈接插入到數(shù)據(jù)庫中,建立專業(yè)化、定制化索引表,如圖3所示,便于下一步的用戶查詢使用。在完成這些工作以后,用戶就可以利用這些進行相關(guān)信息檢索了,在如圖所示的界面中,如圖4所示,用戶在關(guān)鍵詞輸入框中輸入檢索的關(guān)鍵詞,單擊確定即可使輸入的關(guān)鍵詞匹配索引數(shù)據(jù)庫中的內(nèi)容,并將得到的結(jié)構(gòu)以超鏈接的形式顯示在網(wǎng)頁下方,單擊鏈接即可跳轉(zhuǎn)到對應的網(wǎng)頁。
4? 結(jié)? 論
隨著互聯(lián)網(wǎng)信息的急劇增長和互聯(lián)網(wǎng)信息使用人數(shù)的飛增,網(wǎng)絡(luò)爬蟲的使用也越來越多,對它性能的要求也越來越高。本文的設(shè)計在網(wǎng)絡(luò)爬蟲的爬取策略方面,只實現(xiàn)了基本的廣度優(yōu)先策略,因此在網(wǎng)絡(luò)爬蟲爬取策略、網(wǎng)頁相關(guān)度分析、動態(tài)網(wǎng)頁的爬取等方面還可以進行進一步研究。
在爬取后的內(nèi)容索引建立方面,完成了基本的內(nèi)容獲取以及標題、鏈接的獲取與使用。但是在檢索和建立索引的時候,還有很多更加復雜的切詞、插入、排序等方法有待研究和加入使用。
在最后的用戶檢索模塊,可以設(shè)計出一種基于PR算法和實際醫(yī)療衛(wèi)生信息專題網(wǎng)站相結(jié)合的排序算法,來更好地滿足網(wǎng)站的需求。
總之,在完成了基本的網(wǎng)絡(luò)爬蟲程序以后,可以在以后進一步完善和加強,能夠使網(wǎng)絡(luò)爬蟲程序、搜索引擎程序更加滿足人們對于互聯(lián)網(wǎng)信息檢索獲取的需要。
參考文獻:
[1] 唐志,王成良.遺傳算法在主題Web信息采集中的應用研究 [J].計算機科學,2006(7):71-74.
[2] 王繼成,蕭嶸,孫正興,等.Web信息檢索研究進展 [J].計算機研究與發(fā)展,2001(2):187-193.
[3] 左楠.個性化搜索引擎的設(shè)計與實現(xiàn) [D].石家莊:河北科技大學,2013.
[4] 張博,蔡皖東.面向主題的網(wǎng)絡(luò)蜘蛛技術(shù)研究及系統(tǒng)實現(xiàn) [J].微電子學與計算機,2009,26(5):52-55.
[5] 印鑒,陳憶群,張鋼.搜索引擎技術(shù)研究與發(fā)展 [J].計算機工程,2005(14):54-56+104.
[6] 劉金紅,陸余良.主題網(wǎng)絡(luò)爬蟲研究綜述 [J].計算機應用研究,2007(10):26-29+47.
[7] 周立柱,林玲.聚焦爬蟲技術(shù)研究綜述 [J].計算機應用,2005(9):1965-1969.
[8] 王彥博,樊營,高潛.大數(shù)據(jù)時代網(wǎng)絡(luò)爬蟲技術(shù)在商業(yè)銀行中的應用 [J].銀行家,2016(6):114-116.
[9] 張晶,肖智斌,容會,等.改進型遺傳算法在網(wǎng)絡(luò)蜘蛛上的應用 [J].山東大學學報(理學版),2015,50(5):1-6.
[10] 羅剛,王振東.自己動手寫網(wǎng)絡(luò)爬蟲 [M].北京:清華大學出版社,2010.
作者簡介:馮思度(1998-),男,漢族,江蘇徐州人,本科在讀,研究方向:數(shù)據(jù)庫技術(shù)、醫(yī)學信息工程。