◆顏潔
大數(shù)據(jù)技術(shù)背景下輿情收集與監(jiān)測(cè)分析
◆顏潔
(武警湖北省總隊(duì) 湖北 430000)
公民自發(fā)形成的輿論圈,交流更為便捷,傳播更為多元,使得輿情具有了隨意性、直接性、偏差性、突發(fā)性四大特征,對(duì)社會(huì)中的輿情傳播產(chǎn)生的影響不可小覷,所以需要及時(shí)掌握公民輿情的發(fā)展動(dòng)態(tài)。本文在現(xiàn)有國(guó)內(nèi)外輿情收集與監(jiān)測(cè)的基礎(chǔ)上,構(gòu)建了以Python爬蟲(chóng)技術(shù)為基礎(chǔ)的輿情收集與監(jiān)測(cè)系統(tǒng),并且根據(jù)管理人員的實(shí)際需求對(duì)系統(tǒng)做了詳細(xì)的分析與設(shè)計(jì),通過(guò)網(wǎng)絡(luò)討論平臺(tái)獲取大量輿情數(shù)據(jù)進(jìn)行整合分析,從而實(shí)現(xiàn)多態(tài)勢(shì)輿情的實(shí)時(shí)監(jiān)控和輿情數(shù)據(jù)分析的可視化。
大數(shù)據(jù)技術(shù);輿情收集;監(jiān)測(cè)分析
本系統(tǒng)通過(guò)robot協(xié)議可以分析爬取的目標(biāo)網(wǎng)站中哪些數(shù)據(jù)是對(duì)外開(kāi)放可以進(jìn)行爬取的,可以有效排除掉不允許爬取的數(shù)據(jù)。在國(guó)際上,robot協(xié)議沒(méi)有明確的規(guī)定,它是一種道德類(lèi)型的行業(yè)內(nèi)協(xié)議,在爬取的過(guò)程中,它用來(lái)抵制惡意爬取而用作非法行為。robot協(xié)議是爬蟲(chóng)技術(shù)人員在道德層面必須遵守的道德標(biāo)桿,所有的行業(yè)人員都不應(yīng)該惡意觸碰這個(gè)道德標(biāo)桿。在此設(shè)計(jì)中,百度互聯(lián)網(wǎng)網(wǎng)頁(yè)的網(wǎng)站內(nèi)有些是robot協(xié)議禁止爬取的,但是本設(shè)計(jì)用作輿情收集與監(jiān)測(cè),保護(hù)公民的身體安全和心理健康,所以此設(shè)計(jì)需要在某些地方跨過(guò)robot協(xié)議,對(duì)正常的數(shù)據(jù)進(jìn)行爬取。
1.2.1爬蟲(chóng)原理
爬蟲(chóng)是通過(guò)向目標(biāo)網(wǎng)站發(fā)出爬取請(qǐng)求,并得到目標(biāo)網(wǎng)站回應(yīng)的過(guò)程。爬蟲(chóng)通過(guò)對(duì)先前預(yù)設(shè)好的爬取規(guī)則不斷向目標(biāo)網(wǎng)站獲取數(shù)據(jù)存儲(chǔ)到本機(jī),網(wǎng)絡(luò)中每個(gè)資源都是由一個(gè)唯一的URL(Universal Resource Identifier,通用資源標(biāo)識(shí)符)確定的,根據(jù)URL也可以定位到網(wǎng)絡(luò)中的唯一一個(gè)資源。HTTP(超文本傳輸協(xié)議)協(xié)議提供了發(fā)布與接收HTML頁(yè)面的方法,由HTML語(yǔ)言編寫(xiě)的網(wǎng)頁(yè)代碼可由瀏覽器渲染成結(jié)構(gòu)清晰的頁(yè)面。
1.2.2爬蟲(chóng)流程
爬蟲(chóng)通過(guò)URL對(duì)目標(biāo)網(wǎng)站進(jìn)行數(shù)據(jù)請(qǐng)求,當(dāng)目標(biāo)網(wǎng)站接收爬蟲(chóng)的請(qǐng)求之后就開(kāi)始對(duì)網(wǎng)頁(yè)進(jìn)行分析,爬蟲(chóng)將按照之前設(shè)定好的爬蟲(chóng)順序?qū)W(wǎng)頁(yè)依次進(jìn)行URL的請(qǐng)求,目標(biāo)網(wǎng)站不斷處理爬蟲(chóng)請(qǐng)求,并將爬蟲(chóng)程序設(shè)定的需要進(jìn)行爬取的數(shù)據(jù)依次存儲(chǔ)到接口內(nèi)的數(shù)據(jù)庫(kù)中,最終爬蟲(chóng)將目標(biāo)網(wǎng)站所有的請(qǐng)求處理完畢之后爬取結(jié)束。
1.2.3爬取方式
爬蟲(chóng)的爬取方式包括:橫向爬取、縱向爬取。在系統(tǒng)中,以百度互聯(lián)網(wǎng)網(wǎng)頁(yè)為例,選取橫向爬蟲(chóng)抓取,從列表第一頁(yè)開(kāi)始,根據(jù)輸入地爬取頁(yè)數(shù)不斷地向后翻頁(yè),把下一頁(yè)的URL加入到等待爬取的隊(duì)列當(dāng)中。此設(shè)計(jì)使用橫向爬取方法,在規(guī)模不大的情況下,將設(shè)定好目標(biāo)互聯(lián)網(wǎng)網(wǎng)頁(yè)和頁(yè)數(shù)以后逐頁(yè)進(jìn)行數(shù)據(jù)爬取并存儲(chǔ),可以將本系統(tǒng)的性能大幅度提升。
Scrapy框架作為Python語(yǔ)言中開(kāi)源的第三方庫(kù),它在爬取的過(guò)程中,有對(duì)目標(biāo)網(wǎng)站的數(shù)據(jù)爬取速度快、編寫(xiě)語(yǔ)言簡(jiǎn)潔、適用性強(qiáng)等優(yōu)點(diǎn),在特定網(wǎng)站中爬取制定的數(shù)據(jù)結(jié)構(gòu)類(lèi)型,同時(shí)Scrapy框架可以根據(jù)開(kāi)發(fā)者不同的開(kāi)發(fā)需求,對(duì)此框架進(jìn)行相應(yīng)的改進(jìn)。本系統(tǒng)采用Scrapy作為Python爬蟲(chóng)最關(guān)鍵的技術(shù),它是一個(gè)較高層級(jí)的網(wǎng)頁(yè)爬取工具,在目標(biāo)網(wǎng)頁(yè)中將數(shù)據(jù)以特定的結(jié)構(gòu)抓取下來(lái),使用范圍非常廣泛,是輿情收集與監(jiān)測(cè)、輿情分析必不可少的工具。它的中控系統(tǒng)為Engine(中心引擎),將管道、下載器、爬蟲(chóng)、調(diào)度器連接到一起,通過(guò)中心引擎進(jìn)行數(shù)據(jù)之間的傳遞與交流。調(diào)度器將中心引擎的請(qǐng)求命令進(jìn)行歸類(lèi)操作,按照預(yù)定方式進(jìn)行排序,然后有序地將請(qǐng)求命令返回中心引擎,相當(dāng)于中心引擎的“加工車(chē)間”。下載器將中心引擎的請(qǐng)求交付于網(wǎng)頁(yè),并且接收網(wǎng)頁(yè)的回應(yīng)交付給中心引擎。爬蟲(chóng)將從網(wǎng)頁(yè)的回應(yīng)中提取其中有用的數(shù)據(jù),然后將下一步需要請(qǐng)求的URL交付給中心引擎,調(diào)度器往返之前的操作,實(shí)現(xiàn)爬取的自動(dòng)化。管道將爬蟲(chóng)得到的Item(項(xiàng)目)進(jìn)行一系列的操作。
因?yàn)楸鞠到y(tǒng)需要爬取的數(shù)據(jù)規(guī)模不大,只需要選擇其中爬取的頁(yè)數(shù)就可以實(shí)現(xiàn)系統(tǒng)的需求。所以本系統(tǒng)選擇Spider爬蟲(chóng)類(lèi),通過(guò)start_urls使爬蟲(chóng)從網(wǎng)頁(yè)的第一列表頁(yè)開(kāi)始向后爬取選擇的頁(yè)數(shù),同時(shí)使用Spider爬蟲(chóng)類(lèi),編寫(xiě)系統(tǒng)代碼的工作量會(huì)輕松很多,方便后期對(duì)程序的完善。
本系統(tǒng)使用PyCharm作為開(kāi)發(fā)工具,以Python作為開(kāi)發(fā)語(yǔ)言,以Scrapy爬蟲(chóng)框架進(jìn)行數(shù)據(jù)的收集,以Mysql作為數(shù)據(jù)存儲(chǔ)庫(kù),以Jieba進(jìn)行分詞,用Pandas、Matplotlib、Numpy等工具進(jìn)行數(shù)據(jù)可視化處理。從經(jīng)濟(jì)可行性上考慮,本系統(tǒng)所使用的PyCharm是官方免費(fèi)版軟件,涉及到的開(kāi)發(fā)技術(shù)、包都為開(kāi)源免費(fèi)的,所使用數(shù)據(jù)庫(kù)也為免費(fèi)的。從法律可行性上考慮,本系統(tǒng)所使用的軟件、數(shù)據(jù)庫(kù)、技術(shù)在使用過(guò)程中不涉及版權(quán)問(wèn)題,得到的數(shù)據(jù)均為網(wǎng)頁(yè)公開(kāi)數(shù)據(jù),所以系統(tǒng)在法律上是可行的。本系統(tǒng)以Scrapy框架作為Python爬蟲(chóng)最關(guān)鍵的技術(shù),它是一個(gè)較高層級(jí)的網(wǎng)頁(yè)爬取工具,在目標(biāo)網(wǎng)頁(yè)中將數(shù)據(jù)以特定的結(jié)構(gòu)抓取下來(lái),使用范圍非常廣泛,是輿情監(jiān)測(cè)、輿情分析必不可少的工具。
2.2.1業(yè)務(wù)需求分析
本文以互聯(lián)網(wǎng)網(wǎng)頁(yè)作為信息源進(jìn)行分析研究,以爬取到互聯(lián)網(wǎng)網(wǎng)頁(yè)內(nèi)容作為系統(tǒng)的初步目標(biāo)。由于互聯(lián)網(wǎng)網(wǎng)頁(yè)內(nèi)容繁雜,反爬蟲(chóng)機(jī)制健全,無(wú)法通過(guò)短時(shí)間內(nèi)獲取到一定規(guī)模的有效信息,故系統(tǒng)可以根據(jù)需求任意選擇爬取的互聯(lián)網(wǎng)網(wǎng)頁(yè)名字和爬取的頁(yè)數(shù),根據(jù)輿情發(fā)展時(shí)間和熱度的高低設(shè)定互聯(lián)網(wǎng)網(wǎng)頁(yè)爬取范圍。主要工作放在信息分析方面,通過(guò)數(shù)據(jù)展示出公民最為關(guān)心的問(wèn)題,從而提前預(yù)知輿情的走向。系統(tǒng)本身不會(huì)生成數(shù)據(jù)信息,系統(tǒng)所需的數(shù)據(jù)信息來(lái)源于互聯(lián)網(wǎng)網(wǎng)頁(yè)中公民的發(fā)帖與評(píng)論。但是由于互聯(lián)網(wǎng)網(wǎng)頁(yè)的數(shù)據(jù)庫(kù)并不向用戶開(kāi)放,所以要想得到所需要的數(shù)據(jù)需要利用爬蟲(chóng)技術(shù)對(duì)互聯(lián)網(wǎng)網(wǎng)頁(yè)中的原始數(shù)據(jù)進(jìn)行爬取,為系統(tǒng)進(jìn)行數(shù)據(jù)分析創(chuàng)造條件。根據(jù)輿情收集與監(jiān)測(cè)者的需求選擇爬取的互聯(lián)網(wǎng)網(wǎng)頁(yè)名字與爬取帖子的頁(yè)數(shù)。
2.2.2功能性需求分析
系統(tǒng)通過(guò)對(duì)互聯(lián)網(wǎng)網(wǎng)頁(yè)數(shù)據(jù)的水平廣度進(jìn)行爬取。其中水平爬取是將互聯(lián)網(wǎng)網(wǎng)頁(yè)進(jìn)行廣度優(yōu)先爬取操作,可以實(shí)現(xiàn)在網(wǎng)頁(yè)的第一層就可獲得所需要的數(shù)據(jù),很大程度上提升了數(shù)據(jù)爬取的效率。由于百度互聯(lián)網(wǎng)網(wǎng)頁(yè)對(duì)反爬蟲(chóng)機(jī)制做得相對(duì)完善,反爬蟲(chóng)機(jī)制對(duì)于一個(gè)主機(jī)IP頻繁訪問(wèn)和流量訪問(wèn)進(jìn)行監(jiān)控,從而達(dá)到對(duì)爬蟲(chóng)的限制,一旦對(duì)本機(jī)IP進(jìn)行封鎖后,此IP將不能繼續(xù)進(jìn)行數(shù)據(jù)的爬取,所以此系統(tǒng)必須要克服反爬蟲(chóng)機(jī)制的限制,具備在反爬蟲(chóng)機(jī)制下爬取數(shù)據(jù)的能力。系統(tǒng)分析數(shù)據(jù)功能是指將爬取數(shù)據(jù)得到的帖子以及評(píng)論信息進(jìn)行處理,實(shí)現(xiàn)數(shù)據(jù)的可視化功能。數(shù)據(jù)處理首先要除去數(shù)據(jù)中無(wú)效的數(shù)據(jù),將有效的數(shù)據(jù)按照類(lèi)別特征轉(zhuǎn)化為相應(yīng)的特征數(shù)值,篩選掉冗余的數(shù)據(jù)。其次處理干凈的數(shù)據(jù)通過(guò)圖表的形式,將互聯(lián)網(wǎng)網(wǎng)頁(yè)中有效的信息進(jìn)行挖掘,從而達(dá)到用戶可讀的可視化效果,給用戶提供參考依據(jù)。
綜上所述,肺癌患者的CA199、CA125、CA153及CEA指標(biāo)均有著明顯的升高現(xiàn)象,臨床上早期對(duì)肺癌患者的CA199、CA125、CA153及CEA等指標(biāo)進(jìn)行監(jiān)測(cè),能夠幫助治療人員對(duì)患者疾病的發(fā)展程度進(jìn)行判斷,有著較高的臨床價(jià)值。
3.1.1爬蟲(chóng)框架的搭建
爬蟲(chóng)是通過(guò)向目標(biāo)網(wǎng)站發(fā)出爬取請(qǐng)求,并得到目標(biāo)網(wǎng)站回應(yīng)的過(guò)程。爬蟲(chóng)通過(guò)對(duì)先前預(yù)設(shè)好的爬取規(guī)則不斷向目標(biāo)網(wǎng)站獲取數(shù)據(jù)存儲(chǔ)到本機(jī),在爬蟲(chóng)的過(guò)程中需要對(duì)網(wǎng)站進(jìn)行解析,其主要依托于以下幾種技術(shù)。
爬蟲(chóng)流程如前所述。系統(tǒng)使用到的開(kāi)發(fā)程序?yàn)镻ycharm,它是JetBrains設(shè)計(jì)開(kāi)發(fā)的一款由Python語(yǔ)言進(jìn)行編程的軟件。Pycharm開(kāi)發(fā)軟件中可以自定義第三方的庫(kù),下載Scrapy框架庫(kù)和該庫(kù)需要并行的第三方庫(kù),配置所有庫(kù)所需要的運(yùn)行環(huán)境,將存儲(chǔ)接口連接到數(shù)據(jù)庫(kù),就可以通過(guò)解析網(wǎng)頁(yè)實(shí)現(xiàn)對(duì)數(shù)據(jù)爬取并且存儲(chǔ)。
3.1.2系統(tǒng)爬取
用戶通過(guò)系統(tǒng)輸入任何一個(gè)合法互聯(lián)網(wǎng)網(wǎng)頁(yè)名字,然后根據(jù)輿情預(yù)測(cè)規(guī)模大小并結(jié)合自身情況選擇需要爬取互聯(lián)網(wǎng)網(wǎng)頁(yè)網(wǎng)站的頁(yè)數(shù)(每頁(yè)的爬取時(shí)間在4秒鐘左右)。
獲取頁(yè)面信息,并用Xpath解析內(nèi)容,通過(guò)頁(yè)面分析可知道每一個(gè)帖子都是一個(gè)li。循環(huán)遍歷取出內(nèi)容,并拼接帖子URL,進(jìn)入帖子詳情頁(yè)面通過(guò)HTML分析獲得一樓文本。系統(tǒng)會(huì)自動(dòng)翻頁(yè)爬取互聯(lián)網(wǎng)網(wǎng)頁(yè)的標(biāo)題、作者、發(fā)布時(shí)間、鏈接、回復(fù)數(shù)量、帖子內(nèi)容。將爬取到的數(shù)據(jù)存儲(chǔ)到Mysql數(shù)據(jù)庫(kù)的baidu庫(kù)下。
用戶可以根據(jù)數(shù)據(jù)的可視化視圖完整地看到目標(biāo)網(wǎng)站的所有帖子內(nèi)容,根據(jù)標(biāo)題、內(nèi)容、回復(fù)數(shù)量直觀地了解每一個(gè)話題的內(nèi)容和關(guān)注程度,細(xì)致地掌握每一個(gè)話題的動(dòng)向。
系統(tǒng)在爬蟲(chóng)對(duì)互聯(lián)網(wǎng)網(wǎng)頁(yè)的數(shù)據(jù)進(jìn)行一定規(guī)模的爬取后,對(duì)目標(biāo)數(shù)據(jù)進(jìn)行重新審核檢查和校驗(yàn),將重復(fù)的數(shù)據(jù)信息進(jìn)行刪減,改正格式不正確的數(shù)據(jù),最終保證數(shù)據(jù)的獨(dú)立性和統(tǒng)一性,形成系統(tǒng)可以將數(shù)據(jù)進(jìn)行批處理的歸一化基礎(chǔ)。通過(guò)對(duì)初始臟數(shù)據(jù)的預(yù)處理,得到干凈、連續(xù)、標(biāo)準(zhǔn)的可進(jìn)行Python庫(kù)可視化操作的數(shù)據(jù)。為系統(tǒng)進(jìn)一步的模型建立提供準(zhǔn)確性。通過(guò)使用duplicated()函數(shù)pandas函數(shù),集中進(jìn)行檢測(cè)是否存在數(shù)據(jù)重復(fù),將重復(fù)的數(shù)據(jù)利用drop_duplicates()函數(shù)進(jìn)行刪除。然后利用第三方Jieba庫(kù),導(dǎo)入自定義詞典,獲取停用詞list,然后刪除jieba空格、刪除停止詞后的分詞,使用reverse降序排序字典,最后得到關(guān)鍵詞以及關(guān)鍵詞出現(xiàn)的次數(shù),完成分詞操作,對(duì)后面數(shù)據(jù)分析創(chuàng)造條件。
3.3.1詞云展示
Python語(yǔ)言中pyecharts庫(kù)是一個(gè)開(kāi)源的完成詞云繪制的關(guān)鍵庫(kù)。首先引入pandas庫(kù)和numpy庫(kù)對(duì)數(shù)據(jù)進(jìn)行分析,通過(guò)pandas庫(kù)中的read-csv進(jìn)行文件的讀取,再通過(guò)文件的具體類(lèi)型進(jìn)行sep參數(shù)的設(shè)置,利用字符串join方法,使列表轉(zhuǎn)化為字符串。第二,引入collection庫(kù)中的counter方法,返回詞匯出現(xiàn)頻率的統(tǒng)計(jì)。第三,使用sorted方法和lambda函數(shù)得到分詞關(guān)鍵詞,用“choices_number=50”取出關(guān)鍵詞出現(xiàn)頻率排名在前50的關(guān)鍵詞。最后,通過(guò)pyecharts庫(kù),設(shè)置wordcloud.add參數(shù)字體、顏色、大小、傾斜度。
為了使輿情信息得到及時(shí)發(fā)現(xiàn)和處理。詞云是輿情管理人員發(fā)現(xiàn)公民動(dòng)態(tài)異常、掌握公民近期關(guān)注話題最直接的方式。詞云通過(guò)詞匯的形式展示公民近期最佳關(guān)注的話題,詞匯區(qū)分顏色、大小和位置,將出現(xiàn)次數(shù)最多的詞匯放到圖形的中心并且增加字號(hào),系統(tǒng)管理人員可以第一時(shí)間發(fā)現(xiàn)熱點(diǎn)話題,如果話題內(nèi)容為負(fù)面詞匯,可以第一時(shí)間掌控信息,扭轉(zhuǎn)輿情的爆發(fā)。
3.3.2熱點(diǎn)話題詞頻
通過(guò)引入jieba庫(kù)中的anasyle方法,收集數(shù)據(jù)中每個(gè)關(guān)鍵詞匯以及每個(gè)關(guān)鍵詞出現(xiàn)的頻率。對(duì)詞頻前20名的詞匯出現(xiàn)頻率以柱狀圖的形式展示出來(lái),可以使得輿情管理人員掌握對(duì)熱點(diǎn)話題的關(guān)注人數(shù),了解輿情的規(guī)模大小。
例如,本系統(tǒng)對(duì)山東管理學(xué)院的論壇話題進(jìn)行監(jiān)測(cè)與分析。通過(guò)后臺(tái)對(duì)高頻詞的分析,對(duì)有效、重要的高頻詞進(jìn)行統(tǒng)計(jì),可以明顯地看出關(guān)鍵詞中“考研”出現(xiàn)的頻率最高,說(shuō)明“考研”是山東管理學(xué)院最受關(guān)注的話題,足以說(shuō)明學(xué)習(xí)氛圍的濃郁。其次,開(kāi)學(xué)、成績(jī)、專(zhuān)升本、資料等關(guān)鍵詞出現(xiàn)頻率也都排在前列并且差距不大,這些關(guān)鍵詞都為正面話題。當(dāng)某一種關(guān)鍵詞的出現(xiàn)頻率遠(yuǎn)高于其他關(guān)鍵詞或者有負(fù)面關(guān)鍵詞出現(xiàn)時(shí),則會(huì)有輿情爆發(fā)的風(fēng)險(xiǎn),管理人員應(yīng)隨時(shí)關(guān)注,及時(shí)作出相應(yīng)的決策。
3.3.3互聯(lián)網(wǎng)網(wǎng)頁(yè)評(píng)論數(shù)量區(qū)間
通過(guò)統(tǒng)計(jì)互聯(lián)網(wǎng)網(wǎng)頁(yè)不同樓層范圍內(nèi)的回復(fù)數(shù)量,將20層設(shè)為分界點(diǎn)。統(tǒng)計(jì)數(shù)據(jù)中20層以上的樓層如果占比越大,說(shuō)明此時(shí)間段內(nèi)可能會(huì)出現(xiàn)熱點(diǎn)話題討論高潮,意味著將會(huì)有輿情的發(fā)生,所以根據(jù)實(shí)時(shí)監(jiān)控樓層回復(fù)數(shù)量的占比,可以有效預(yù)測(cè)輿情的發(fā)生,詞云和排名前20的關(guān)鍵詞分析出輿情的主題,從而使輿情管理人員及時(shí)地做出決策,避免負(fù)面輿情的發(fā)展。
本文通過(guò)使用Python語(yǔ)言實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的輿情收集與監(jiān)測(cè)系統(tǒng),功能基本完善,對(duì)互聯(lián)網(wǎng)網(wǎng)頁(yè)的監(jiān)測(cè)具有一定的效果。隨著大數(shù)據(jù)時(shí)代的到來(lái),人們對(duì)網(wǎng)絡(luò)的依賴性與迷茫性很高,此系統(tǒng)將人們?cè)诰W(wǎng)絡(luò)中的言行舉止記錄下來(lái),關(guān)注他們?cè)谏钪械牧硪环N狀態(tài),在一定程度上可以幫助公民調(diào)整心態(tài),避免輿情的大面積爆發(fā),具有一定的實(shí)現(xiàn)意義。
[1]李文軍. 大數(shù)據(jù)時(shí)代網(wǎng)絡(luò)輿情管理機(jī)制研究[D].電子科技大學(xué),2021.
[2]陳旭輝,郭常斐.大數(shù)據(jù)背景下輿情的傳播和應(yīng)對(duì)研究[J].廈門(mén)城市職業(yè)學(xué)院學(xué)報(bào),2021,23(01):7-12.
[3]于寧. 輿情傳播態(tài)勢(shì)預(yù)測(cè)的研究與系統(tǒng)實(shí)現(xiàn)[D].濟(jì)南大學(xué),2019.
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2022年7期