一種基于分布式的輿情數據實(shí)時(shí)采集方法和系統技術(shù)方案
優(yōu)采云 發(fā)布時(shí)間: 2020-08-09 15:04本發(fā)明專(zhuān)利技術(shù)公開(kāi)了一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統,方法包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)并定義爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取數據;S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。本發(fā)明專(zhuān)利技術(shù)構架先進(jìn),通過(guò)使用工廠(chǎng)模式作為系統的主要設計模式,能夠快速生成新實(shí)例,將瀏覽器訪(fǎng)問(wèn)、日志生成、數據封裝、代理設置以及隊列設置等系統核心功能封裝上去,增強系統的可擴展性和可移植性,提高代碼的可重用性和系統的可維護性。
全部詳盡技術(shù)資料下載
【技術(shù)實(shí)現步驟摘要】
本專(zhuān)利技術(shù)涉及互聯(lián)網(wǎng)輿情數據的分布式高并發(fā)采集方法及系統,特別的涉及目標數據的高效、實(shí)時(shí)采集技術(shù)實(shí)現方式及系統,尤其涉及一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統。
技術(shù)介紹
輿情是在一定的社會(huì )空間內,圍繞中介性社會(huì )風(fēng)波的發(fā)生、發(fā)展和變化,民眾對社會(huì )管理者形成和持有的社會(huì )政治心態(tài)。目前,網(wǎng)絡(luò )成為反映社會(huì )輿情的主要載體之一,在輿情傳播中起著(zhù)重要的作用。而輿論危機的爆發(fā)使越來(lái)越多的人關(guān)注社會(huì )輿論的形成和發(fā)展。各級黨政機關(guān)要及時(shí)了解信息,加強輿情監控,提高輿情應對能力和在新輿論環(huán)境中的執政能力,及時(shí)化解矛盾,處理好政府和民眾的關(guān)系。企事業(yè)單位也須要關(guān)注網(wǎng)路輿情,利用市場(chǎng)已有的輿情剖析系統和服務(wù)平臺,或者人員與工具結合,掌控網(wǎng)絡(luò )輿情,輔助決策。如何從大量的網(wǎng)路數據中提取出關(guān)鍵信息,是當前技術(shù)研究的一個(gè)重點(diǎn)。傳統的通用搜索引擎作為一個(gè)輔助檢索信息的工具,成為用戶(hù)訪(fǎng)問(wèn)網(wǎng)路的入口和手冊。但是,這些通用的搜索引擎也存在著(zhù)一定的局限性,1、通用搜索引擎所返回的結果收錄大量用戶(hù)不關(guān)心的網(wǎng)頁(yè)。通用搜索引擎常常對信息濃度密集且具有一定結構的數據無(wú)能為力,不能挺好地發(fā)覺(jué)和獲取關(guān)鍵信息。2、簡(jiǎn)單的基于互聯(lián)網(wǎng)的數據采集系統,其采集方式單一,無(wú)法同時(shí)多任務(wù)執行,這就造成了數據的采集效率較低,無(wú)法滿(mǎn)足數據的實(shí)時(shí)性。3、目前的其他輿情剖析監測系統,輿情數據大部分采用離線(xiàn)處理機制,在結構上就造成了其數據必然存在一定的信噪比。而隨著(zhù)網(wǎng)路技術(shù)的發(fā)展,信息更新的速率越來(lái)越快,低信噪比的輿情數據采集系統成為輿情剖析項目的急切需求。
技術(shù)實(shí)現思路
本專(zhuān)利技術(shù)的目的在于克服現有技術(shù)的不足,提供一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統,爬取的數據可生成在線(xiàn)輿情大數據庫,為相關(guān)政府及企業(yè)用戶(hù)提供在線(xiàn)數據庫服務(wù)。本專(zhuān)利技術(shù)的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現的:一種基于分布式的輿情數據實(shí)時(shí)采集方法,它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。所述的步驟S1包括以下子步驟:S11:將所有數據源站分為多類(lèi),針對每一類(lèi)網(wǎng)站采集包括網(wǎng)站的網(wǎng)頁(yè)地址、網(wǎng)頁(yè)標題、關(guān)鍵字在內的信息構建類(lèi)相關(guān)的關(guān)鍵字庫;S12:根據每類(lèi)網(wǎng)站的頁(yè)面數據特性,事先定義好要爬取的數據數組;S13:當有新的目標網(wǎng)站需要采集時(shí),獲取包括目標網(wǎng)站地址、頁(yè)面標題、頁(yè)面關(guān)鍵字在內的與關(guān)鍵字庫對應的信息,根據獲得的信息與已有的泛型數據對目標網(wǎng)站進(jìn)行分類(lèi);同時(shí)篩選出網(wǎng)站的文章列表地址,過(guò)濾包括廣告在內的與輿情數據無(wú)關(guān)的頁(yè)面,將篩選出的地址加入數據采集網(wǎng)站列表。
所述的步驟S2包括以下子步驟:S21:將分類(lèi)后的輿情數據源網(wǎng)站以列表的形式傳給數據采集服務(wù)器,數據采集服務(wù)器將采集任務(wù)分配到多臺數據采集PC;針對每位源站,系統設置專(zhuān)門(mén)的爬蟲(chóng)進(jìn)行數據爬??;S22:在數據爬取的過(guò)程中對源網(wǎng)站進(jìn)行實(shí)時(shí)監控,系統在整個(gè)數據爬取過(guò)程中采用休眠機制循環(huán)訪(fǎng)問(wèn)網(wǎng)站頁(yè)面,休眠時(shí)間依照網(wǎng)站的數據更新速率動(dòng)態(tài)設置;當更新量達到采集閾值時(shí),爬蟲(chóng)激活進(jìn)行新一輪的數據采集;同時(shí),在每一輪數據采集完成以后,系統標示最后的采集位置,日志文件記錄本次循環(huán)共采集的數據條數,系統步入休眠狀態(tài)。在數據爬取過(guò)程中,系統首先采用鞋廠(chǎng)設計模式將模擬訪(fǎng)問(wèn)不同的瀏覽器方式封裝上去,并提供統一的實(shí)例化插口;在具體實(shí)例化的過(guò)程中,指定瀏覽器類(lèi)型名稱(chēng)即可生產(chǎn)出對應的瀏覽器訪(fǎng)問(wèn)類(lèi);爬蟲(chóng)將按照數據源站的類(lèi)型與復雜度生成對應的瀏覽器訪(fǎng)問(wèn)實(shí)例;同時(shí),代理設置模塊在瀏覽器訪(fǎng)問(wèn)過(guò)程中手動(dòng)為程序分配IP地址。頁(yè)面數據分為靜態(tài)數據和動(dòng)態(tài)數據;對于靜態(tài)頁(yè)面數據,爬蟲(chóng)調用模擬瀏覽器訪(fǎng)問(wèn)方式頁(yè)面地址獲取網(wǎng)頁(yè)源數據;對于動(dòng)態(tài)數據,爬蟲(chóng)在訪(fǎng)問(wèn)頁(yè)面之前,需要通過(guò)抓包的方法找到動(dòng)態(tài)數據返回鏈接,再調用瀏覽器訪(fǎng)問(wèn)方式獲取頁(yè)面數據。將URL地址儲存隊列方式封裝上去,并提供統一的實(shí)例化插口;采用多級生產(chǎn)者消費者模式并發(fā)的爬取數據:一級生產(chǎn)者依據分配的數據源網(wǎng)站地址訪(fǎng)問(wèn)頁(yè)面獲取數據的一級URL地址,并將地址儲存到數據隊列當中;若當前地址頁(yè)面不是正文地址,而是正文列表地址,系統將分配二級生成者從當前地址隊列中獲取URL地址進(jìn)行數據爬取,直到獲取到正文URL地址;消費者負責從正文地址隊列中取出URL數據,訪(fǎng)問(wèn)頁(yè)面獲取正文頁(yè)面內容;在此過(guò)程中,生產(chǎn)者和消費者彼此之間通過(guò)阻塞隊列來(lái)進(jìn)行通信;采用隊列設置模塊提供隊列的存取操作,并初始化隊列數據庫并完善聯(lián)接。
所述的步驟S3包括對動(dòng)態(tài)網(wǎng)頁(yè)數據的剖析和對靜態(tài)頁(yè)面數據的剖析,其中對于靜態(tài)頁(yè)面數據使用封裝好的Xpath方式,給定數據項的路徑地址即可獲取到對應數據項;同時(shí)結合正則表達式,通過(guò)正則表達式過(guò)濾篩選數據,補充獲取XPath未能解析到的數據;系統將解析到的數據形參給事前定義好的對應的數據項;對于動(dòng)態(tài)網(wǎng)頁(yè)數據,使用JSON方式獲取字典格式的動(dòng)態(tài)網(wǎng)頁(yè)數據項。所述的步驟S4步驟包括:在數據采集之前,采用鞋廠(chǎng)設計模式,將每一類(lèi)網(wǎng)站定義好的數據項以及保留數組封裝成字典格式,并提供統一的數據插口;在數據采集完成后,根據數據源網(wǎng)站類(lèi)別,系統調用對應的封裝方式將采集到的數據封裝為對應類(lèi)的統一格式;在封裝過(guò)程中使用UUID方式為每條數據生成惟一的標識符,方便后續的檢索操作。所述的步驟S5包括:采用鞋廠(chǎng)設計模式將結果數據的儲存操作封裝為隊列方式,采集到數據然后調用隊列方式將數據輸入數據庫服務(wù)器;在數據庫服務(wù)器中分別為每一類(lèi)源數據網(wǎng)站設置對應的數據庫,在數據儲存時(shí)將數據存到對應的數據庫;根據保存數據的不同采取不同的數據庫,保存生產(chǎn)者和消費者之間的URL隊列數據。所述的步驟S6包括:采用鞋廠(chǎng)模式將日志方式封裝上去,提供統一的插口訪(fǎng)問(wèn);日志采用logging模塊給運行中的程序提供了一個(gè)標準的信息輸出插口;系統開(kāi)始運行的時(shí)侯即調用日志插口生成實(shí)例,在整個(gè)過(guò)程中記錄每位模塊的運行狀態(tài)與結果;在每一輪爬蟲(chóng)程序執行完成時(shí),將檢測結果按天生成日志文件。
采用所述的方式的系統,所述的系統包括:數據打算模塊,用于完成源站的分類(lèi)以及目標數據項定義;更新檢測模塊,用于檢測目標數據網(wǎng)站的更新情況。數據爬取模塊,用于模擬瀏覽器環(huán)境訪(fǎng)問(wèn)源站目標頁(yè)面并將頁(yè)面數據獲取到本地;代理設置模塊,用于手動(dòng)為服務(wù)器分配IP地址。隊列設置模塊,用于負責管理阻塞URL采集隊列,以及結果數據儲存隊列,并進(jìn)行去重操作;數據解析模塊,用于通過(guò)剖析源數據,并從中解析出目標數據項;數據封裝模塊,用于將爬取到的數據項統一封裝成標準格式輸出;數據儲存模塊,用于將封裝好的數據儲存到在線(xiàn)輿情大數據庫;日志生成模塊,用于各環(huán)節檢測狀態(tài)的日志輸出。本專(zhuān)利技術(shù)的有益療效是:1. 系統構架先進(jìn),通過(guò)使用工廠(chǎng)模式作為系統的主要設計模式,能夠快速生成新實(shí)例。將瀏覽器訪(fǎng)問(wèn),日志生成,數據封裝,代理設置以及隊列設置等系統核心功能封裝上去。增強了系統的可擴展性和可移植性,提高了代碼的可重用性和系統的可維護性
【技術(shù)保護點(diǎn)】
一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。
【技術(shù)特點(diǎn)摘要】
1.一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。2.根據權力要求1所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:所述的步驟S1包括以下子步驟:S11:將所有數據源站分為多類(lèi),針對每一類(lèi)網(wǎng)站采集包括網(wǎng)站的網(wǎng)頁(yè)地址、網(wǎng)頁(yè)標題、關(guān)鍵字在內的信息構建類(lèi)相關(guān)的關(guān)鍵字庫;S12:根據每類(lèi)網(wǎng)站的頁(yè)面數據特性,事先定義好要爬取的數據數組;S13:當有新的目標網(wǎng)站需要采集時(shí),獲取包括目標網(wǎng)站地址、頁(yè)面標題、頁(yè)面關(guān)鍵字在內的與關(guān)鍵字庫對應的信息,根據獲得的信息與已有的泛型數據對目標網(wǎng)站進(jìn)行分類(lèi);同時(shí)篩選出網(wǎng)站的文章列表地址,過(guò)濾包括廣告在內的與輿情數據無(wú)關(guān)的頁(yè)面,將篩選出的地址加入數據采集網(wǎng)站列表。
3.根據權力要求1所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:所述的步驟S2包括以下子步驟:S21:將分類(lèi)后的輿情數據源網(wǎng)站以列表的形式傳給數據采集服務(wù)器,數據采集服務(wù)器將采集任務(wù)分配到多臺數據采集PC;針對每位源站,系統設置專(zhuān)門(mén)的爬蟲(chóng)進(jìn)行數據爬??;S22:在數據爬取的過(guò)程中對源網(wǎng)站進(jìn)行實(shí)時(shí)監控,系統在整個(gè)數據爬取過(guò)程中采用休眠機制循環(huán)訪(fǎng)問(wèn)網(wǎng)站頁(yè)面,休眠時(shí)間依照網(wǎng)站的數據更新速率動(dòng)態(tài)設置;當更新量達到采集閾值時(shí),爬蟲(chóng)激活進(jìn)行新一輪的數據采集;同時(shí),在每一輪數據采集完成以后,系統標示最后的采集位置,日志文件記錄本次循環(huán)共采集的數據條數,系統步入休眠狀態(tài)。4.根據權力要求1或3所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:在數據爬取過(guò)程中,系統首先采用鞋廠(chǎng)設計模式將模擬訪(fǎng)問(wèn)不同的瀏覽器方式封裝上去,并提供統一的實(shí)例化插口;在具體實(shí)例化的過(guò)程中,指定瀏覽器類(lèi)型名稱(chēng)即可生產(chǎn)出對應的瀏覽器訪(fǎng)問(wèn)類(lèi);爬蟲(chóng)將按照數據源站的類(lèi)型與復雜度生成對應的瀏覽器訪(fǎng)問(wèn)實(shí)例;同時(shí),代理設置模塊在瀏覽器訪(fǎng)問(wèn)過(guò)程中手動(dòng)為程序分配IP地址。5.根據權力要求1或3所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:將URL地址儲存隊列方式封裝上去,并提供統一的實(shí)例化插口;采用多級生產(chǎn)者消費者模式并發(fā)的爬取數據:一級生產(chǎn)者依據分配的數據源網(wǎng)站地址訪(fǎng)問(wèn)頁(yè)面獲取數據的一級URL地址,并將地址儲存到數據隊列當中;若當前地址頁(yè)面不是正文地址,而是正文列表地址,系統將分配二級生成者從當前地址隊列中獲取URL地址進(jìn)行...
【專(zhuān)利技術(shù)屬性】
技術(shù)研制人員:李平,陳雁,胡棟,代臻,劉婷,許斌,孫先,林輝,趙玲,
申請(專(zhuān)利權)人:西南石油大學(xué),
類(lèi)型:發(fā)明
國別省市:四川;51
全部詳盡技術(shù)資料下載 我是這個(gè)專(zhuān)利的主人