999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析Python爬蟲獲取數(shù)據(jù)實現(xiàn)調查研究的應用*

2021-06-03 04:55:20張勇常驍毅蒿花耿輝通訊作者
科學與信息化 2021年14期
關鍵詞:分析信息

張勇 常驍毅 蒿花 耿輝(通訊作者)

1. 西安交通大學第一附屬醫(yī)院國有資產(chǎn)管理辦公室 陜西 西安 710061;2. 西安交通大學第一附屬醫(yī)院體檢部 陜西 西安 710061

隨著大數(shù)據(jù)時代的來臨,數(shù)據(jù)規(guī)模、類型呈幾何式增長,為從海量的信息數(shù)據(jù)里獲取有價值的數(shù)據(jù),衍生了網(wǎng)絡爬蟲,這是一種按研究人員設定獲取信息源的規(guī)則,根據(jù)一定的算法編程實現(xiàn)自動地抓取網(wǎng)絡信息數(shù)據(jù)的程序,研究人員獲取到這些信息數(shù)據(jù)后,再進行數(shù)據(jù)清洗、加工,構建信息調查的信息數(shù)據(jù)基礎。本文在已發(fā)表的文獻的基礎上,介紹Python構建爬蟲獲取數(shù)據(jù)進行信息調查的過程。

1 示例數(shù)據(jù)簡介

本文以Emma等[1]2017年發(fā)表的信息調查“阿爾茨海默病患者及護理人員在網(wǎng)絡社區(qū)尋求解決方案和情感支持”為例,介紹Python爬蟲實現(xiàn)信息調查的方法。該研究的過程分為3個階段,第一階段使用以Python編程語言編寫爬蟲獲取從2012年4月至2016年10月在alzconnected.org的Caregiver論壇中公開的2500個帖子及其各自的解決方案,第二階段對這些帖子及其4219份回復進行了分析,第三階段對分析的結果進行描述,大多數(shù)帖子(26%)與阿爾茨海默癥癥狀的查詢有關,而最高比例的答案(45.56%)與照顧者的健康狀況有關。alzconnected.org網(wǎng)站有可能成為護理人員的情感支持渠道,但是,需要一個更加友好的界面來滿足大多數(shù)護理人員分享技術技能等的需求。

2 Python構建爬蟲的準備工作

首先登錄網(wǎng)站分析網(wǎng)站結構,第一步獲取初始的URL,初始URL地址可以人為地指定,也可由研究人員指定的某個或某幾個目標網(wǎng)頁決定;第二步根據(jù)初始的URL爬取頁面并獲得新的URL,獲得新的URL地址后,爬取當前URL地址信息,解析網(wǎng)頁內(nèi)容,將網(wǎng)頁有價值信息數(shù)據(jù)存儲到CSV或數(shù)據(jù)庫等存儲介質中;第三步將上一步獲取的URL整理成隊列,從隊列中讀取新的URL,從而獲得新的網(wǎng)頁信息,解析新網(wǎng)頁內(nèi)容并單獨存儲;第四步設置爬蟲系線設置的停止條件, 條件滿足時停止獲取數(shù)據(jù)退出程序。為保證能夠快速搭建爬蟲應用,本文使用集成安裝環(huán)境Anaconda。

2.1 Anaconda的安裝

Anaconda是一個開源的Python發(fā)行版本,直接去官網(wǎng)https://www.anaconda.com 下載安裝就可以,安裝過程中需要注意的一點是鉤選Anaconda加入系統(tǒng)變量。

2.2 Google Chrome瀏覽器的開發(fā)者工具介紹

為方便瀏覽網(wǎng)頁中有價值信息數(shù)據(jù)的源代碼位置,需要使用Google Chrome瀏覽器的開發(fā)者工具。按F12(或快捷鍵Ctrl+Shift+i)調出開發(fā)者工具 。Chrome開發(fā)者工具最常用的4個功能模塊:ELements、Console、Sources、Network。Elements:可查看或修改HTML的屬性、CSS屬性、設置斷點、監(jiān)聽事件等。Console:用于執(zhí)行一次性代碼,查看動態(tài)數(shù)據(jù)對象,分析調試信息或異常信息等。Sources:用于查看需獲取數(shù)據(jù)頁面的HTML文件源代碼、CSS源代碼、JavaScript源代碼,也可以調試JavaScript源代碼,嘗試添加斷點給JS代碼等。Network:查看網(wǎng)頁數(shù)據(jù)與網(wǎng)絡連接加載的相關時間等信息。

因本文需要使用到Elements,下面詳細介紹Google Chrome瀏覽器的元素(Elements)使用方法及技巧,在網(wǎng)頁分析及爬蟲代碼編寫過程中,查看元素的代碼,實現(xiàn)網(wǎng)頁元素信息的快速定位是最關鍵的一點,使用Elements中左上角的箭頭圖標(或按快捷鍵Ctrl+Shift+C)進入選擇元素模式,滑動鼠標從網(wǎng)頁中選擇需要查看的元素,然后可以在開發(fā)者工具元素(Elements)一欄中定位到該元素源代碼的具體位置,從源代碼中讀出改元素的屬性。

2.3 網(wǎng)頁架構分析

Emma等[1]2017年發(fā)表的信息調查論文數(shù)據(jù)來源為:阿爾茨海默病患者及護理人員網(wǎng)絡社區(qū),即:該社區(qū)ALZConnected?(alzconnected.org)由阿爾茨海默氏癥協(xié)會?提供支持,是一個免費的在線交流社區(qū),面向受阿爾茨海默病或其他癡呆癥影響的每個人,包括:患有這種疾病的人及其照顧者、家庭成員、朋友等,其網(wǎng)絡地址為:https://www.alzconnected.org。

從首頁https://www.alzconnected.org/進入網(wǎng)站,點擊F12打開開發(fā)人員工具,Emma等研究信息數(shù)據(jù)主要來源于:Caregivers Forum(看護人論壇),用Elements標簽的快速定位工具定位后Caregivers Forum是包含在:一組源代碼的a標簽里,其中的href為加載在網(wǎng)絡地址后面的一組跳轉地址,即:https://www.alzconnected.org加上discussion.aspx?g=topics&f=151成為一個全鏈接可以跳轉到Caregivers Forum(看護人論壇)里,如圖1所示:

圖1 Elements標簽的快速定位示意圖

https://www.alzconnected.org/discussion.aspx?g=topics&f=15為點擊跳轉到Caregivers Forum(看護人論壇)的網(wǎng)絡地址,這點可以通過點擊Caregivers Forum按鍵跳轉后的網(wǎng)絡地址來驗證。進入Caregivers Forum(看護人論壇)后,依舊利用快速定位工具,查看文檔標題元素所在位置及其跳轉地址,如圖2所示:

圖2 標題元素所在位置及跳轉地址

文檔標題所在的table為:class=”content ekContent”的下拉地址里,XAPTH地址為:table class=”content ekContent”/tbody/tr/td[2]/a的a標簽里面,即:網(wǎng)絡地址和問題的text都可以在tbody標簽里tr標簽包含的第二個td的a標簽里找到相應的href屬性和text屬性。

接下來找到爬蟲程序的停止條件,當點擊網(wǎng)頁上的“l(fā)ast”跳轉到網(wǎng)站的最后一頁時,會出現(xiàn)“<<”樣的標識,用Elements標簽的定位,即“<<”和“<<”是等價的,在爬蟲程序里既可以使用“<<”也可以使用“<<”的出現(xiàn)作為爬蟲的停止條件。

3 依據(jù)網(wǎng)頁的架構設計Python爬蟲的核心技術

爬取阿爾茨海默病網(wǎng)絡社區(qū)網(wǎng)站共分三步:第一步,指定爬蟲獲取信息數(shù)據(jù)入口;第二步,獲取討論主題下的問題目錄;第三步,獲取目錄下的文章內(nèi)容和回帖內(nèi)容;第四步,存儲以上內(nèi)容到CSV或SQL等存儲介質。

3.1 Python爬蟲指定爬蟲獲取信息數(shù)據(jù)入口

首先給爬蟲定義獲取信息數(shù)據(jù)入口的domain和需要抓取Caregivers Forum(看護人論壇)的url,分別定義為domain和base_url:domain = ‘https://www.alzconnected.org’,base_url = domain + ‘/discussion.aspx?g=topics&f=151’。

3.2 獲取Caregivers Forum論壇下的帖子目錄

找到domain和base_url后根據(jù)題目所在網(wǎng)頁源碼位置,寫入相應代碼:etr_obj.xpath(‘//*[@id=“ctl00_ctl00_MainContent_ContentPlaceHolderRightSide_Forum1”]/table[2]/tbody/tr[7]/td[2]/a/font/font’)。定義需要爬取帖子目錄的url:board[‘board_url’] = columns[0].xpath(‘a(chǎn)’)[0].attrib[‘href’],定義需要爬取帖子所在位置board[‘board_name’] = columns[0].xpath(‘a(chǎn)’)[0].text。之后循環(huán)拿出所有帖子目錄,以及帖子所在的url(定義為board_url),再進入url獲取分目錄里的每一行的需要的信息:接著進入帖子目錄,拿到帖子標題、發(fā)表時間和一系列有用的信息,在獲取帖子目錄的時候先判斷目錄共有頁,只確定最后一頁作為爬蟲程序的停止條件即可:找到頁碼所在的位置,根據(jù)“<<”這個符號判斷是否最后一頁。確定了停止條件后進行循環(huán)抓取每頁的數(shù)據(jù),到最后一頁結束程序,獲取數(shù)據(jù)的主要代碼如下:

爬出每一頁的text就行。

3.3 獲取目錄下的帖子內(nèi)容和回帖內(nèi)容

獲取帖子目錄下的所有帖子及回帖內(nèi)容,首先爬蟲需獲取每個帖子的跳轉地址,地址用:topic_url進行定義,代碼為:def get_content(self, topic_url, page): querystring = {“ajax”:””,”p”:str(page)},得到的topic_url地址和domain結合構造出帖子及回帖的url地址:url = self.domain + topic_url,讓爬蟲查找源代碼獲取帖子及回帖內(nèi)容的文本代碼所在位置并下載數(shù)據(jù):c_eles = self.tree.xpath(‘//td class=”message ekMessage”’)。和獲取帖子目錄的方式一樣得到最大頁數(shù),執(zhí)行循環(huán),爬取到最后一頁為止跳出循環(huán),查找下一問題url,遍歷循環(huán),獲取所有內(nèi)容。

3.4 爬蟲的數(shù)據(jù)存儲模塊分類

3.4.1 文本存儲。新建一個文本txt進行存儲,代碼為:with open(‘文本.text’,‘w’,encoding=‘utf-8’)as f: f.write(),寫入完成后關閉text文件: f.close()。

3.4.2 csv表格存儲。新建一個文本csv進行存儲,首先引入csv庫:import csv,with open(‘文本.csv’,‘w’, newline=‘’)as f,fieldname = [‘需要存儲的數(shù)據(jù)名稱’],writer = csv.DictWriter(f, fieldnames = fieldname),寫入存儲數(shù)據(jù)即可。

3.4.3 數(shù)據(jù)庫存儲。用Python命令創(chuàng)建數(shù)據(jù)庫和表,將數(shù)據(jù)逐條存入數(shù)據(jù)庫的表內(nèi),如圖3所示,將頁面上讀取到的有價值的信息或者將處理過的信息存儲到數(shù)據(jù)庫中,以便以后分析時使用。Python支持的數(shù)據(jù)庫包括Oracle、MySQL等所有主流數(shù)據(jù)庫。

圖3 Python命令創(chuàng)建數(shù)據(jù)庫和表示意圖

3.5 對爬蟲獲取數(shù)據(jù)進行處理

Emma等[1]使用了LIWC分析工具處理爬蟲獲取的數(shù)據(jù),LIWC分析工具是Pennebaker等人在研究情緒書寫的治療效果時發(fā)明了基于計算機軟件程序的文本分析工具—— 語言探索與字詞計數(shù)(簡稱 LIWC),一種可以對文本內(nèi)容的詞語類別(尤其是心理學類詞語)進行量化分析的軟件,它的英文版本下載地址為:http://liwc.wpengine.com,類似的中文LIWC分析網(wǎng)站為:http://ccpl.psych.ac.cn/textmind。將爬蟲爬取結果復制到LIWC分析工具里,點擊分析,得到分詞結果,進行分析,爬蟲獲取數(shù)據(jù)結果如圖4所示。將結果中的Topics列,復制進LIWC分析工具里進行分析,如圖5所示:

圖4 爬蟲獲取數(shù)據(jù)結果

圖5 數(shù)據(jù)進行LlWC分析

Emma等[1]獲取到阿爾茨海默病患者論壇的數(shù)據(jù)后,利用LIWC分析工具對帖子和回復都進行了分析,論壇上的帖子傳達最多的是照顧者從心碎到強烈憤怒的情感變化,分析還顯示大多數(shù)帖子(26%)與有關阿爾茨海默病癥狀的查詢有關,而最高比例的回復(45.56%)與照顧者的健康有關。

4 結束語

網(wǎng)絡爬蟲獲取數(shù)據(jù)非常高效便捷,并且可以更新實時數(shù)據(jù),2018年Python在IEEE頂級程序語言排行榜中排名第一,具有專業(yè)的數(shù)據(jù)統(tǒng)計和機器學習等高質量擴展庫,尤其是Python語言構建爬蟲獲取數(shù)據(jù)進行臨床研究,國內(nèi)學者已有廣泛應用:2017年學者卞偉瑋等運用聚焦網(wǎng)絡爬蟲技術快速、準確地獲得公共衛(wèi)生服務系統(tǒng)的醫(yī)療數(shù)據(jù),為健康風險評估模型提供數(shù)據(jù)基礎[2]。2018年學者熊丹妮等運用網(wǎng)絡爬蟲獲取醫(yī)療服務平臺信息與《2016中國衛(wèi)生和計劃生育統(tǒng)計年鑒》的相關數(shù)據(jù)進行對比[3]。2018年學者羅春花利用網(wǎng)絡爬蟲軟件搜集了全國30個地區(qū)的等級醫(yī)院數(shù)據(jù),從省級和經(jīng)濟區(qū)劃單元兩個層面對醫(yī)療服務能力的空間資源配置進行分析[4]。

研究人員通過Python爬蟲獲取到有價值信息數(shù)據(jù)后,進行數(shù)據(jù)清洗、加工,構建信息調查的數(shù)據(jù)基礎,本文在已發(fā)表文獻的基礎上,介紹Python構建爬蟲獲取數(shù)據(jù)進行信息調查的過程。主要是將頁面上讀取到的有價值的信息或者將處理過的信息存儲到數(shù)據(jù)庫中,以便以后分析、抓取時使用。研究人員運用Python語言進行信息調查的過程為:①Caregivers Forum(看護人論壇)后,依舊利用快速定位工具,查看文檔標題元素所在位置及其跳轉地址;②只確定最后一頁作為爬蟲程序的停止條件即可:找到頁碼所在的位置,根據(jù)“<<”這個符號判斷是否最后一頁。③用熟悉的方式存儲數(shù)據(jù),數(shù)據(jù)存儲格式姚方便后期處理數(shù)據(jù)。④運用LIWC分析工具處理爬蟲獲取的數(shù)據(jù),得到結果并分析。其中需要注意的是爬蟲獲取數(shù)據(jù)后存儲的格式要利于后期數(shù)據(jù)處理,否則還要進行數(shù)據(jù)轉換,避免增加不必要的工作量。

猜你喜歡
分析信息
隱蔽失效適航要求符合性驗證分析
電力系統(tǒng)不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
電力系統(tǒng)及其自動化發(fā)展趨勢分析
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
中西醫(yī)結合治療抑郁癥100例分析
在線教育與MOOC的比較分析
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
健康信息(九則)
祝您健康(1987年2期)1987-12-30 09:52:28
主站蜘蛛池模板: 国产乱子伦视频在线播放| 久久人搡人人玩人妻精品一| 大陆精大陆国产国语精品1024| 精品国产女同疯狂摩擦2| 欧美特级AAAAAA视频免费观看| 国产日韩久久久久无码精品| 全部免费毛片免费播放| 伊人久久精品无码麻豆精品| 亚洲国产日韩欧美在线| 色婷婷亚洲十月十月色天| 一级毛片在线免费视频| 国产精品免费p区| 精品伊人久久久香线蕉 | 欧美日本在线| 九九久久精品国产av片囯产区| 亚洲成a人片77777在线播放| 无码久看视频| 在线观看国产黄色| 热热久久狠狠偷偷色男同 | 日韩精品毛片| 中文字幕在线观| 91久久偷偷做嫩草影院| 成色7777精品在线| 麻豆精品在线视频| 极品国产在线| 狠狠色香婷婷久久亚洲精品| 国产剧情伊人| 夜夜操天天摸| 亚洲侵犯无码网址在线观看| 久久久噜噜噜| 亚洲人成影视在线观看| 啪啪免费视频一区二区| 58av国产精品| 亚洲第一天堂无码专区| 最新国产午夜精品视频成人| a毛片免费在线观看| 久久久精品久久久久三级| 亚洲乱码精品久久久久..| 国产探花在线视频| 国产在线精品人成导航| 中文字幕久久波多野结衣 | 午夜欧美在线| 青青青视频91在线 | 精品久久久久成人码免费动漫| 99精品这里只有精品高清视频| 国产亚洲精品97AA片在线播放| 国产精品午夜福利麻豆| 亚洲成人黄色在线| 欧美午夜性视频| 国产欧美日韩18| 国产午夜福利亚洲第一| 亚洲精品无码AⅤ片青青在线观看| 少妇人妻无码首页| 国产成人精品一区二区三在线观看| 欧美a级完整在线观看| 亚洲—日韩aV在线| www.99在线观看| 久久毛片免费基地| 久久久久久尹人网香蕉 | 国产AV毛片| 国产美女一级毛片| 国产高清不卡| 欧美国产日韩在线| 国产精品太粉嫩高中在线观看 | 99精品影院| 女人18毛片一级毛片在线 | 欧美激情网址| 美臀人妻中出中文字幕在线| 国产欧美日韩综合一区在线播放| 国产精品成人久久| 欧美成人精品在线| 欧美国产在线看| 色亚洲成人| 色婷婷成人| 97se亚洲综合在线韩国专区福利| 久久黄色小视频| 国产真实乱人视频| 久视频免费精品6| 88av在线| 中文字幕日韩久久综合影院| 99re经典视频在线| 99热亚洲精品6码|