大數據技術下輿情收集和監測

前言:尋找寫作靈感?中文期刊網用心挑選的大數據技術下輿情收集和監測,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。

大數據技術下輿情收集和監測

摘要:公民自發形成的輿論圈,交流更為便捷,傳播更為多元,使得輿情具有了隨意性、直接性、偏差性、突發性四大特征,對社會中的輿情傳播產生的影響不可小覷,所以需要及時掌握公民輿情的發展動態。本文在現有國內外輿情收集與監測的基礎上,構建了以Python爬蟲技術為基礎的輿情收集與監測系統,并且根據管理人員的實際需求對系統做了詳細的分析與設計,通過網絡討論平臺獲取大量輿情數據進行整合分析,從而實現多態勢輿情的實時監控和輿情數據分析的可視化。

關鍵詞:大數據技術輿情收集;監測分析

1輿情收集與監測的關鍵技術

1.1本系統對

robot協議的應用本系統通過robot協議可以分析爬取的目標網站中哪些數據是對外開放可以進行爬取的,可以有效排除掉不允許爬取的數據。在國際上,robot協議沒有明確的規定,它是一種道德類型的行業內協議,在爬取的過程中,它用來抵制惡意爬取而用作非法行為。robot協議是爬蟲技術人員在道德層面必須遵守的道德標桿,所有的行業人員都不應該惡意觸碰這個道德標桿。在此設計中,百度互聯網網頁的網站內有些是robot協議禁止爬取的,但是本設計用作輿情收集與監測,保護公民的身體安全和心理健康,所以此設計需要在某些地方跨過robot協議,對正常的數據進行爬取。

1.2爬蟲技術

1.2.1爬蟲原理

爬蟲是通過向目標網站發出爬取請求,并得到目標網站回應的過程。爬蟲通過對先前預設好的爬取規則不斷向目標網站獲取數據存儲到本機,網絡中每個資源都是由一個唯一的URL(UniversalResourceIdentifier,通用資源標識符)確定的,根據URL也可以定位到網絡中的唯一一個資源。HTTP(超文本傳輸協議)協議提供了發布與接收HTML頁面的方法,由HTML語言編寫的網頁代碼可由瀏覽器渲染成結構清晰的頁面。

1.2.2爬蟲流程

爬蟲通過URL對目標網站進行數據請求,當目標網站接收爬蟲的請求之后就開始對網頁進行分析,爬蟲將按照之前設定好的爬蟲順序對網頁依次進行URL的請求,目標網站不斷處理爬蟲請求,并將爬蟲程序設定的需要進行爬取的數據依次存儲到接口內的數據庫中,最終爬蟲將目標網站所有的請求處理完畢之后爬取結束。

1.2.3爬取方式

爬蟲的爬取方式包括:橫向爬取、縱向爬取。在系統中,以百度互聯網網頁為例,選取橫向爬蟲抓取,從列表第一頁開始,根據輸入地爬取頁數不斷地向后翻頁,把下一頁的URL加入到等待爬取的隊列當中。此設計使用橫向爬取方法,在規模不大的情況下,將設定好目標互聯網網頁和頁數以后逐頁進行數據爬取并存儲,可以將本系統的性能大幅度提升。

1.3Scrapy架構

Scrapy框架作為Python語言中開源的第三方庫,它在爬取的過程中,有對目標網站的數據爬取速度快、編寫語言簡潔、適用性強等優點,在特定網站中爬取制定的數據結構類型,同時Scrapy框架可以根據開發者不同的開發需求,對此框架進行相應的改進。本系統采用Scrapy作為Python爬蟲最關鍵的技術,它是一個較高層級的網頁爬取工具,在目標網頁中將數據以特定的結構抓取下來,使用范圍非常廣泛,是輿情收集與監測、輿情分析必不可少的工具。它的中控系統為Engine(中心引擎),將管道、下載器、爬蟲、調度器連接到一起,通過中心引擎進行數據之間的傳遞與交流。調度器將中心引擎的請求命令進行歸類操作,按照預定方式進行排序,然后有序地將請求命令返回中心引擎,相當于中心引擎的“加工車間”。下載器將中心引擎的請求交付于網頁,并且接收網頁的回應交付給中心引擎。爬蟲將從網頁的回應中提取其中有用的數據,然后將下一步需要請求的URL交付給中心引擎,調度器往返之前的操作,實現爬取的自動化。管道將爬蟲得到的Item(項目)進行一系列的操作。因為本系統需要爬取的數據規模不大,只需要選擇其中爬取的頁數就可以實現系統的需求。所以本系統選擇Spider爬蟲類,通過start_urls使爬蟲從網頁的第一列表頁開始向后爬取選擇的頁數,同時使用Spider爬蟲類,編寫系統代碼的工作量會輕松很多,方便后期對程序的完善。

2需求分析和系統總體架構

2.1可行性分析

本系統使用PyCharm作為開發工具,以Python作為開發語言,以Scrapy爬蟲框架進行數據的收集,以Mysql作為數據存儲庫,以Jieba進行分詞,用Pandas、Matplotlib、Numpy等工具進行數據可視化處理。從經濟可行性上考慮,本系統所使用的PyCharm是官方免費版軟件,涉及到的開發技術、包都為開源免費的,所使用數據庫也為免費的。從法律可行性上考慮,本系統所使用的軟件、數據庫、技術在使用過程中不涉及版權問題,得到的數據均為網頁公開數據,所以系統在法律上是可行的。本系統以Scrapy框架作為Python爬蟲最關鍵的技術,它是一個較高層級的網頁爬取工具,在目標網頁中將數據以特定的結構抓取下來,使用范圍非常廣泛,是輿情監測、輿情分析必不可少的工具。

2.2系統需求分析

2.2.1業務需求分析

本文以互聯網網頁作為信息源進行分析研究,以爬取到互聯網網頁內容作為系統的初步目標。由于互聯網網頁內容繁雜,反爬蟲機制健全,無法通過短時間內獲取到一定規模的有效信息,故系統可以根據需求任意選擇爬取的互聯網網頁名字和爬取的頁數,根據輿情發展時間和熱度的高低設定互聯網網頁爬取范圍。主要工作放在信息分析方面,通過數據展示出公民最為關心的問題,從而提前預知輿情的走向。系統本身不會生成數據信息,系統所需的數據信息來源于互聯網網頁中公民的發帖與評論。但是由于互聯網網頁的數據庫并不向用戶開放,所以要想得到所需要的數據需要利用爬蟲技術對互聯網網頁中的原始數據進行爬取,為系統進行數據分析創造條件。根據輿情收集與監測者的需求選擇爬取的互聯網網頁名字與爬取帖子的頁數。

2.2.2功能性需求分析

系統通過對互聯網網頁數據的水平廣度進行爬取。其中水平爬取是將互聯網網頁進行廣度優先爬取操作,可以實現在網頁的第一層就可獲得所需要的數據,很大程度上提升了數據爬取的效率。由于百度互聯網網頁對反爬蟲機制做得相對完善,反爬蟲機制對于一個主機IP頻繁訪問和流量訪問進行監控,從而達到對爬蟲的限制,一旦對本機IP進行封鎖后,此IP將不能繼續進行數據的爬取,所以此系統必須要克服反爬蟲機制的限制,具備在反爬蟲機制下爬取數據的能力。系統分析數據功能是指將爬取數據得到的帖子以及評論信息進行處理,實現數據的可視化功能。數據處理首先要除去數據中無效的數據,將有效的數據按照類別特征轉化為相應的特征數值,篩選掉冗余的數據。其次處理干凈的數據通過圖表的形式,將互聯網網頁中有效的信息進行挖掘,從而達到用戶可讀的可視化效果,給用戶提供參考依據。

3輿情收集與監測系統實現

3.1爬蟲模塊

3.1.1爬蟲框架的搭建

爬蟲是通過向目標網站發出爬取請求,并得到目標網站回應的過程。爬蟲通過對先前預設好的爬取規則不斷向目標網站獲取數據存儲到本機,在爬蟲的過程中需要對網站進行解析,其主要依托于以下幾種技術。爬蟲流程如前所述。系統使用到的開發程序為Pycharm,它是JetBrains設計開發的一款由Python語言進行編程的軟件。Pycharm開發軟件中可以自定義第三方的庫,下載Scrapy框架庫和該庫需要并行的第三方庫,配置所有庫所需要的運行環境,將存儲接口連接到數據庫,就可以通過解析網頁實現對數據爬取并且存儲。

3.1.2系統爬取

用戶通過系統輸入任何一個合法互聯網網頁名字,然后根據輿情預測規模大小并結合自身情況選擇需要爬取互聯網網頁網站的頁數(每頁的爬取時間在4秒鐘左右)。獲取頁面信息,并用Xpath解析內容,通過頁面分析可知道每一個帖子都是一個li。循環遍歷取出內容,并拼接帖子URL,進入帖子詳情頁面通過HTML分析獲得一樓文本。系統會自動翻頁爬取互聯網網頁的標題、作者、發布時間、鏈接、回復數量、帖子內容。將爬取到的數據存儲到Mysql數據庫的baidu庫下。系統通過解析數據庫,從數據庫讀取bordered表中數據以表格的形式展示到系統的html頁面上:tableclass="tabletable-bordered"。用戶可以根據數據的可視化視圖完整地看到目標網站的所有帖子內容,根據標題、內容、回復數量直觀地了解每一個話題的內容和關注程度,細致地掌握每一個話題的動向。

3.2數據分析模塊

系統在爬蟲對互聯網網頁的數據進行一定規模的爬取后,對目標數據進行重新審核檢查和校驗,將重復的數據信息進行刪減,改正格式不正確的數據,最終保證數據的獨立性和統一性,形成系統可以將數據進行批處理的歸一化基礎。通過對初始臟數據的預處理,得到干凈、連續、標準的可進行Python庫可視化操作的數據。為系統進一步的模型建立提供準確性。通過使用duplicated()函數pandas函數,集中進行檢測是否存在數據重復,將重復的數據利用drop_duplicates()函數進行刪除。然后利用第三方Jieba庫,導入自定義詞典,獲取停用詞list,然后刪除jieba空格、刪除停止詞后的分詞,使用reverse降序排序字典,最后得到關鍵詞以及關鍵詞出現的次數,完成分詞操作,對后面數據分析創造條件。

3.3數據可視化模塊

3.3.1詞云展示

Python語言中pyecharts庫是一個開源的完成詞云繪制的關鍵庫。首先引入pandas庫和numpy庫對數據進行分析,通過pandas庫中的read-csv進行文件的讀取,再通過文件的具體類型進行sep參數的設置,利用字符串join方法,使列表轉化為字符串。第二,引入collection庫中的counter方法,返回詞匯出現頻率的統計。第三,使用sorted方法和lambda函數得到分詞關鍵詞,用“choices_number=50”取出關鍵詞出現頻率排名在前50的關鍵詞。最后,通過pyecharts庫,設置wordcloud.add參數字體、顏色、大小、傾斜度。為了使輿情信息得到及時發現和處理。詞云是輿情管理人員發現公民動態異常、掌握公民近期關注話題最直接的方式。詞云通過詞匯的形式展示公民近期最佳關注的話題,詞匯區分顏色、大小和位置,將出現次數最多的詞匯放到圖形的中心并且增加字號,系統管理人員可以第一時間發現熱點話題,如果話題內容為負面詞匯,可以第一時間掌控信息,扭轉輿情的爆發。

3.3.2熱點話題詞頻

通過引入jieba庫中的anasyle方法,收集數據中每個關鍵詞匯以及每個關鍵詞出現的頻率。對詞頻前20名的詞匯出現頻率以柱狀圖的形式展示出來,可以使得輿情管理人員掌握對熱點話題的關注人數,了解輿情的規模大小。例如,本系統對山東管理學院的論壇話題進行監測與分析。通過后臺對高頻詞的分析,對有效、重要的高頻詞進行統計,可以明顯地看出關鍵詞中“考研”出現的頻率最高,說明“考研”是山東管理學院最受關注的話題,足以說明學習氛圍的濃郁。其次,開學、成績、專升本、資料等關鍵詞出現頻率也都排在前列并且差距不大,這些關鍵詞都為正面話題。當某一種關鍵詞的出現頻率遠高于其他關鍵詞或者有負面關鍵詞出現時,則會有輿情爆發的風險,管理人員應隨時關注,及時作出相應的決策。

3.3.3互聯網網頁評論數量區間

通過統計互聯網網頁不同樓層范圍內的回復數量,將20層設為分界點。統計數據中20層以上的樓層如果占比越大,說明此時間段內可能會出現熱點話題討論高潮,意味著將會有輿情的發生,所以根據實時監控樓層回復數量的占比,可以有效預測輿情的發生,詞云和排名前20的關鍵詞分析出輿情的主題,從而使輿情管理人員及時地做出決策,避免負面輿情的發展。

4結語

本文通過使用Python語言實現了一個簡單的輿情收集與監測系統,功能基本完善,對互聯網網頁的監測具有一定的效果。隨著大數據時代的到來,人們對網絡的依賴性與迷茫性很高,此系統將人們在網絡中的言行舉止記錄下來,關注他們在生活中的另一種狀態,在一定程度上可以幫助公民調整心態,避免輿情的大面積爆發,具有一定的實現意義。參考文獻:

[1]李文軍.大數據時代網絡輿情管理機制研究[D].電子科技大學,2021.

[2]陳旭輝,郭常斐.大數據背景下輿情的傳播和應對研究[J].廈門城市職業學院學報,2021,23(01):7-12.

[3]于寧.輿情傳播態勢預測的研究與系統實現[D].濟南大學,2019.

作者:顏潔  單位:武警湖北省總隊  

亚洲精品一二三区-久久