馮越 宋舒晗 李利敏 馮洪海
摘要
水果可以提供大量人體必須的微量元素、維他命元素等,是人體健康不可缺少的食物來源,但有些水果對特定人群可能帶來傷害。通過開發(fā)網(wǎng)絡(luò)爬蟲軟件獲取截至2017年8月百度搜索中264種水果食用后的不良反應(yīng)數(shù)據(jù),通過統(tǒng)計學方法對篩選后的224條數(shù)據(jù)進行統(tǒng)計分析得出食用水果后出現(xiàn)腹瀉的可能性最大和食用西瓜最易產(chǎn)生不良癥狀。
【關(guān)鍵詞】互聯(lián)網(wǎng)醫(yī)療 網(wǎng)絡(luò)爬蟲
1 引言
據(jù)中國互聯(lián)網(wǎng)中心發(fā)布的《第37次中國互聯(lián)網(wǎng)發(fā)展狀況統(tǒng)計報告》顯示,2015年中國互聯(lián)網(wǎng)醫(yī)療用戶數(shù)量己達1.52億?;ヂ?lián)網(wǎng)積累了大量有關(guān)食物的營養(yǎng)數(shù)據(jù)以及醫(yī)療禁忌信息,是人們醫(yī)療保健方面的寶貴財富,因此如何有效的利用這些數(shù)據(jù)更好的為我們服務(wù)便成了現(xiàn)階段面臨的主要問題。目前,我國己有一些學者從不同角度對在線醫(yī)療咨詢數(shù)據(jù)的信息挖掘進行了研究。洪弘[1]等研究了醫(yī)療數(shù)據(jù)挖掘的特點、過程及方法。馮洪海[2]等通過開發(fā)爬蟲軟件統(tǒng)計分析了現(xiàn)階段互聯(lián)網(wǎng)醫(yī)療用戶癥狀和疾病的分布。魏強[3]通過研究醫(yī)療數(shù)據(jù)存儲與分析系統(tǒng),分析了疾病間的關(guān)聯(lián)關(guān)系。
網(wǎng)絡(luò)爬蟲[4]又稱為網(wǎng)絡(luò)蜘蛛和網(wǎng)絡(luò)機器人,是按照一定規(guī)則自動爬取萬維網(wǎng)信息的一種程序或腳本,可以自動采取所有其能夠訪問到的頁面內(nèi)容,以獲取或更新這些網(wǎng)站的內(nèi)容和檢索方式。在互聯(lián)網(wǎng)搜索引擎或其他類似網(wǎng)絡(luò)中廣泛應(yīng)用。
本文通過開發(fā)網(wǎng)絡(luò)爬蟲軟件獲取截至2017年8月百度搜索中264種水果食用后的不良反應(yīng)數(shù)據(jù),通過篩選得到最終的224條。針對這些數(shù)據(jù),用統(tǒng)計學的方法得出大量食用某種水果最容易出現(xiàn)的癥狀,和吃什么水果容易引起的不良反應(yīng)最多。
2 程序設(shè)計過程
實現(xiàn)網(wǎng)絡(luò)爬蟲大致有兩種方法:Java和非Java方法。本文采用Java的Jsoup技術(shù),他是一款可直接解析某個URL地址、HTML文本內(nèi)容的HTML解析器。它提供的API,可通過DOM、CSS以及類似于jQuery的操作方法來取出和操作數(shù)據(jù)。
爬取百度搜索較以往最大的區(qū)別在于不規(guī)則網(wǎng)頁的處理,百度搜索出來的網(wǎng)頁格式多樣,給整個程序的設(shè)計帶來了巨大的挑戰(zhàn)。本文采用多級網(wǎng)頁爬蟲的方式獲取數(shù)據(jù),模擬用戶輸入關(guān)鍵字,獲得某種水果不良反應(yīng)的一級鏈接,然后讀取每條一級鏈接中包含二級鏈接的網(wǎng)頁內(nèi)容,從中提取出各種水果所對應(yīng)的不良反應(yīng)。
在代碼的編寫過程中,為了應(yīng)對因頻繁訪問造成的代碼被限制問題,本文采取用戶代理(User Agent)的策略,在爬蟲中添加Headers,將瀏覽器的User-Agent復制到爬蟲的Headers中。如果獲取的網(wǎng)頁內(nèi)容為空,那么程序就將在0-n毫秒之間隨機休眠。如果休眠后仍然不能夠得到數(shù)據(jù),那么將跳過此頁面,進行多次實驗后,最終將n設(shè)置為200。
為了避免程序在連接某個頁面時花費較長時間,和應(yīng)對一些獲取不到連接的網(wǎng)站,本文對程序的最大連接獲取時間進行了限制,提高了程序的效率。如果程序在m毫秒內(nèi)不能獲取到網(wǎng)頁的鏈接,就跳過此網(wǎng)頁,經(jīng)過反復實驗,本文將m設(shè)置為6000,即允許每個網(wǎng)頁的等待時間為6秒。
由于網(wǎng)頁的多樣性,得到鏈接之后的內(nèi)容提取也是一大難題。網(wǎng)頁提取內(nèi)容的具體流程如圖1。
3 實驗結(jié)果
通過對264種水果不良反應(yīng)識別,對識別結(jié)果進行統(tǒng)計,結(jié)果顯示吃西瓜后出現(xiàn)不良反應(yīng)的次數(shù)最多,為18次,占所有水果出現(xiàn)不良反應(yīng)數(shù)量的8.04%其次是香蕉,占5.80%。出現(xiàn)次數(shù)最多的前十種水果如圖2。
在224條數(shù)據(jù)中,吃水果最易引起腹瀉,占所有癥狀的9.82%;其次是消化不良,占4.91%。出現(xiàn)次數(shù)最多的前十種癥狀如圖3。
4 結(jié)束語
本文通過對百度搜索數(shù)據(jù)進行挖掘,獲取了5280條鏈接264種水果食用后容易引起的不良反應(yīng),對篩選后的224條數(shù)據(jù)進行統(tǒng)計分析,在程序中采用用戶代理和程序休眠的方法提高爬蟲效率。針對這些數(shù)據(jù),通過統(tǒng)計學方法調(diào)查食用水果后出現(xiàn)不良反應(yīng)的分布和容易引起不良癥狀的水果分布,其結(jié)果顯示,264種水果中吃西瓜后出現(xiàn)的不良反應(yīng)次數(shù)最多,在224條不良癥狀中,吃水果最容易引起腹瀉。之后的研究可以在以下方面進行改進:獲取更加豐富、準確的數(shù)據(jù)資源;進一步改進算法,提取提取精度;從更多的角度分析統(tǒng)計結(jié)果。
參考文獻
[1]洪弘,李玲娟.醫(yī)療數(shù)據(jù)挖掘的特點、過程及方法[J].價值工程,2011,30(32):166-167.
[2]馮洪海,孫遠燦,李利敏,宋舒晗,黃俟輝.基于Web醫(yī)療數(shù)據(jù)的互聯(lián)網(wǎng)醫(yī)療用戶研究[J].計算機時代,2017(04):41-46.
[3]魏強.基于云計算的醫(yī)療數(shù)據(jù)處理技術(shù)研究[D].貴州大學,2015.
[4]陳琳,任芳.基于Python的新浪微博數(shù)據(jù)爬蟲程序設(shè)計[J].信息系統(tǒng)工程,2016(09):97-99.