張揚(yáng) 范巖 夏玲玲
摘 要:系統(tǒng)運(yùn)用Python語(yǔ)言克服新浪微博反爬蟲(chóng)問(wèn)題,使用Scrapy框架實(shí)現(xiàn)了高效、穩(wěn)定的微博用戶信息爬蟲(chóng)程序,全面獲取用戶在微博中的基本信息,并導(dǎo)入Neo4j圖數(shù)據(jù)庫(kù)和Echarts數(shù)據(jù)可視化庫(kù)進(jìn)行人物關(guān)系分析和挖掘。此外,系統(tǒng)針對(duì)微博中存在大量“網(wǎng)絡(luò)水軍”的現(xiàn)狀設(shè)置了過(guò)濾選項(xiàng),可以有效排除“網(wǎng)絡(luò)水軍”非正常行為對(duì)分析結(jié)果的影響。系統(tǒng)調(diào)試結(jié)果表明,系統(tǒng)能夠?qū)崿F(xiàn)對(duì)特定微博下轉(zhuǎn)發(fā)、評(píng)論用戶信息的實(shí)時(shí)、穩(wěn)定、高效采集與分析,有效幫助人們從海量數(shù)據(jù)中提取復(fù)雜的關(guān)聯(lián)關(guān)系,簡(jiǎn)潔、直觀地分析微博用戶之間的交互關(guān)系。
關(guān)鍵詞:新浪微博;網(wǎng)絡(luò)爬蟲(chóng);模擬登錄;數(shù)據(jù)分析
DOI:10. 11907/rjdk. 191139 開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2019)009-0125-05
Design and Implementation of Microblog User Information
Acquisition and Analysis System
ZHANG Yang, FAN Yan, XIA Ling-ling,CHEN Jun-an,WANG Qin
(Department of Computer Information and Cyber Security, Jiangsu Police Institute, Nanjing 210031, China)
Abstract: An efficient and stable crawler system based on Scrapy for microblog user information acquisition and analysis is designed. In the system, by overcoming anti-crawler problem of Sina Weibo, it can obtain all basic profile information of microblog users. The obtained user information can be imported into Neo4j graph database and Echarts visual diagram to analyze and mine the relationship between users. Additionally, according to the current situation of a large number of Internet paid posters existed in Microblog, the system provides a filtering option, which can effectively eliminate the influence of abnormal behavior of paid posters on the analysis results. The debugging results show that the system can crawl and analyze user information for specific microblog forwarding and commenting to achieve the real-time, stable and effective performance. It can effectively help people extract complex relationships from massive data and analyze the interaction between Microblog users concisely and intuitively.
Key Words: Sina Weibo; network crawler; simulation login; data analysis
0 引言
隨著自媒體時(shí)代的到來(lái),社交網(wǎng)絡(luò)服務(wù)(Social Network Service,SNS)已融入大眾日常生活中。個(gè)人將自己的信息上傳到各種各樣的社會(huì)化媒體平臺(tái)如微博、論壇、博客、在線社區(qū)、即時(shí)通訊軟件(微信、QQ)、社交網(wǎng)站(Facebook、Twitter)等,通過(guò)社交平臺(tái)管理自己的社交圈,由此造成大量社交數(shù)據(jù)在互聯(lián)網(wǎng)上被公開(kāi)。社交數(shù)據(jù)中匯聚了大量的用戶關(guān)系數(shù)據(jù)和信息傳播數(shù)據(jù),有效提取出這些數(shù)據(jù)對(duì)于研究人類社會(huì)、經(jīng)濟(jì)等的潛在規(guī)律以及探索人類社會(huì)關(guān)系中的奧秘至關(guān)重要。
新浪微博作為國(guó)內(nèi)最具影響力的社交平臺(tái)之一,截至2018年12月,月活躍用戶數(shù)已達(dá)4.46億,蘊(yùn)含著海量有價(jià)值的用戶信息及社交關(guān)系數(shù)據(jù)。羅咪[1]通過(guò)模擬登陸抓取動(dòng)態(tài)網(wǎng)頁(yè),設(shè)計(jì)了一個(gè)基于Python的新浪微博爬蟲(chóng)系統(tǒng)獲取用戶數(shù)據(jù);張章學(xué)[2]對(duì)社交網(wǎng)絡(luò)中的信息存儲(chǔ)進(jìn)行分析,構(gòu)建了用戶敏感數(shù)據(jù)獲取模型,在獲取用戶個(gè)人信息基礎(chǔ)上,利用好友列表獲取其整個(gè)社交平臺(tái)中用戶的敏感數(shù)據(jù)。以新浪微博為例,研究發(fā)現(xiàn)用戶所有敏感數(shù)據(jù)中,職業(yè)獲取率最低;Tumasjan A等[3]對(duì)Twitter上的10萬(wàn)多條信息進(jìn)行分析,發(fā)現(xiàn)Twitter上的情緒如與政客相關(guān)的積極和消極情緒,與選民的政治偏好密切相關(guān);魏冬梅等[4]對(duì)Web信息獲取方法、原理和關(guān)鍵技術(shù)進(jìn)行研究,提出一種基于Python和相關(guān)庫(kù),結(jié)合模塊化方法構(gòu)建Web文本信息獲取框架的策略。社交數(shù)據(jù)的獲取與關(guān)系數(shù)據(jù)的存儲(chǔ)和管理息息相關(guān),張琳和熊斯攀[5]基于Neo4j圖形數(shù)據(jù)庫(kù)設(shè)計(jì)并實(shí)現(xiàn)了Linked-US社交網(wǎng)絡(luò)平臺(tái),更好地管理和更新社交網(wǎng)絡(luò)數(shù)據(jù)及其內(nèi)在關(guān)系;Fan YH[6]將Scrapy與Redis相結(jié)合對(duì)原始Scrapy框架進(jìn)行改進(jìn),設(shè)計(jì)了一個(gè)基于Web信息Scrapy框架的分布式爬蟲(chóng)系統(tǒng)。
本文以新浪微博為例,設(shè)計(jì)并實(shí)現(xiàn)一套基于Python的用戶信息采集系統(tǒng),可以實(shí)現(xiàn)模擬登錄新浪微博,獲取參與熱點(diǎn)話題的微博用戶信息,并利用Neo4j圖形數(shù)據(jù)庫(kù)存儲(chǔ)及可視化展示用戶關(guān)系。
1 微博數(shù)據(jù)獲取方法
1.1 基于微博API的數(shù)據(jù)獲取
新浪微博提供的API接口可以使開(kāi)發(fā)人員高效、便捷地獲取微博數(shù)據(jù),用戶在新浪微博開(kāi)放平臺(tái)注冊(cè)成為開(kāi)發(fā)者,通過(guò)Oauth2.0用戶授權(quán)后即可在任意開(kāi)發(fā)環(huán)境下根據(jù)具體需求獲取所需微博數(shù)據(jù)[7]。盡管新浪微博提供的API已經(jīng)比較完善,但還存在一些不足。一方面出于對(duì)用戶隱私數(shù)據(jù)的保護(hù),部分用戶信息暫未支持API接口;另一方面新浪公司對(duì)API的調(diào)用頻率進(jìn)行了嚴(yán)格限制,致使數(shù)據(jù)采集速度欠佳,面對(duì)熱點(diǎn)話題中“吃瓜群眾”的爆發(fā)式增長(zhǎng),難以獲取大量實(shí)時(shí)數(shù)據(jù)。
因此,通過(guò)微博的API接口進(jìn)行數(shù)據(jù)采集雖然高效、便捷,但難以滿足本系統(tǒng)對(duì)數(shù)據(jù)獲取的實(shí)時(shí)性要求。
1.2 基于Python網(wǎng)絡(luò)爬蟲(chóng)的數(shù)據(jù)獲取
與新浪微博API相比,基于Python的網(wǎng)絡(luò)爬蟲(chóng)利用程序模仿普通用戶使用瀏覽器訪問(wèn)微博獲取實(shí)時(shí)數(shù)據(jù)。網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的優(yōu)勢(shì)在于通過(guò)對(duì)網(wǎng)頁(yè)源代碼的解析,幾乎可以獲取所有網(wǎng)頁(yè)展示信息,而且基于Python的網(wǎng)絡(luò)爬蟲(chóng)獲取數(shù)據(jù)沒(méi)有速度限制,在理想狀態(tài)下每小時(shí)可獲取上百萬(wàn)條用戶信息[8-10]。
實(shí)現(xiàn)該項(xiàng)技術(shù)的難點(diǎn)在于新浪微博官方對(duì)微博爬蟲(chóng)采取抵制態(tài)度,其反爬蟲(chóng)機(jī)制一直在不斷完善,導(dǎo)致模擬登錄過(guò)程中障礙重重;此外,對(duì)網(wǎng)頁(yè)源代碼的分析和構(gòu)造請(qǐng)求也并不簡(jiǎn)單。本文將重點(diǎn)闡述系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)過(guò)程中如何應(yīng)對(duì)反爬蟲(chóng)機(jī)制。
2 系統(tǒng)設(shè)計(jì)
2.1 模擬登錄
模擬登錄是本系統(tǒng)要攻克的第一個(gè)難題。模擬登錄指讓計(jì)算機(jī)模仿人工操作,以達(dá)到欺騙服務(wù)器的目的。本系統(tǒng)結(jié)合以下3種方式修改請(qǐng)求頭以實(shí)現(xiàn)模擬登錄。
(1)隨機(jī)調(diào)用User-Agent。用戶代理(User-Agent,UA)是指包含瀏覽器信息、操作系統(tǒng)信息等的一個(gè)特殊字符串頭,服務(wù)器通過(guò)它判斷當(dāng)前訪問(wèn)對(duì)象是瀏覽器還是網(wǎng)絡(luò)爬蟲(chóng)。系統(tǒng)中使用Python安裝fake-useragent庫(kù),每次向該庫(kù)請(qǐng)求時(shí)都會(huì)獲得一個(gè)隨機(jī)的User-Agent,偽裝成不同瀏覽器,降低了被服務(wù)器辨認(rèn)為網(wǎng)絡(luò)爬蟲(chóng)的概率。
(2)建立并維護(hù)proxy代理池。當(dāng)同一IP請(qǐng)求微博網(wǎng)頁(yè)次數(shù)過(guò)多將出現(xiàn)414狀態(tài)碼,因此考慮獲取代理網(wǎng)站提供的高速代理并建立代理池,每次請(qǐng)求隨機(jī)抽取一個(gè)可用代理,偽裝成不同地址,迷惑服務(wù)器。經(jīng)篩選發(fā)現(xiàn)購(gòu)買代理服務(wù)商提供的穩(wěn)定、高可用優(yōu)質(zhì)IP價(jià)格昂貴,而部分代理服務(wù)商也提供免費(fèi)的代理IP,但數(shù)量少且極易失效。針對(duì)免費(fèi)代理極易失效的特點(diǎn),本系統(tǒng)建立代理池,將剛獲取的代理IP設(shè)為100分,每次根據(jù)分?jǐn)?shù)高低依次檢測(cè)代理IP,當(dāng)檢測(cè)到不可用時(shí)扣1分,分?jǐn)?shù)低至閾值時(shí)直接從數(shù)據(jù)庫(kù)移除,當(dāng)檢測(cè)到可用即設(shè)為100分,如圖1所示。
本系統(tǒng)建立的代理池以免費(fèi)IP為主,包括獲取模塊、儲(chǔ)存模塊、檢測(cè)模塊、接口模塊,分別負(fù)責(zé)抓取各大代理商提供的免費(fèi)高匿代理,以集合的形式將代理存入Redis數(shù)據(jù)庫(kù),定期檢測(cè)代理的可用性和提供對(duì)外服務(wù)的接口。
從代理池可擴(kuò)展性及數(shù)據(jù)庫(kù)連接安全性考慮,代理池導(dǎo)入Flask輕量級(jí)Web應(yīng)用框架,將數(shù)據(jù)庫(kù)中存儲(chǔ)的IP隨機(jī)映射到Web端口,程序使用requests.get()方法即可獲取IP,如圖2所示。
(3)建立并維護(hù)Cookie池。Cookie是指某些網(wǎng)站為了辨別用戶身份,進(jìn)行Session跟蹤而儲(chǔ)存在用戶本地終端上的數(shù)據(jù),一般在登錄賬號(hào)后即可使用瀏覽器自帶的調(diào)試工具查看。在沒(méi)有登錄或同一賬號(hào)訪問(wèn)頻率過(guò)高的情況下,新浪微博極易出現(xiàn)403狀態(tài)碼。因此需要購(gòu)買大量微博賬號(hào)構(gòu)建Cookies池,每次請(qǐng)求時(shí)隨機(jī)獲取一個(gè)Cookie。Cookies池包括生成、儲(chǔ)存、檢測(cè)、接口4個(gè)模塊,雖然微博賬號(hào)不會(huì)失效但生成的Cookie有效期一般只有2~4天,因此要及時(shí)剔除失效的Cookie并重新登錄更新Cookie。
在獲取Cookie的過(guò)程中有一個(gè)難點(diǎn),即購(gòu)買的微博賬號(hào)安全等級(jí)較低使得每次登錄微博均要輸入驗(yàn)證碼,不同接口驗(yàn)證碼類型也不相同,包括短信驗(yàn)證碼、圖形驗(yàn)證碼、四宮格滑動(dòng)驗(yàn)證碼等。本系統(tǒng)最終選擇在https://passport.weibo.cn/signin/login站點(diǎn)登錄并識(shí)別把握較大的四宮格滑動(dòng)驗(yàn)證碼,如圖3所示。具體采用識(shí)別驗(yàn)證碼的模板匹配方法破解微博登錄驗(yàn)證碼。微博驗(yàn)證碼宮格只有4個(gè),驗(yàn)證碼樣式最多4*3*2*1=24種。首先將24種驗(yàn)證碼圖片保存下來(lái)并設(shè)為模版,然后將登錄微博時(shí)出現(xiàn)的驗(yàn)證碼與模板進(jìn)行匹配,當(dāng)相似度超過(guò)閾值時(shí)就能得到為模版定義的拖動(dòng)順序,然后應(yīng)用自動(dòng)化測(cè)試工具Selenium模擬用戶拖動(dòng)操作即可。
2.2 數(shù)據(jù)抓取
為實(shí)現(xiàn)爬蟲(chóng)穩(wěn)定、高效的運(yùn)行,數(shù)據(jù)抓取模塊使用當(dāng)下最流行的Scrapy爬蟲(chóng)框架,其具有異步、并發(fā)、可擴(kuò)展等優(yōu)勢(shì),在單位時(shí)間內(nèi)可達(dá)到較高的吞吐量[11-13]。本系統(tǒng)爬取的目標(biāo)數(shù)據(jù)包括熱門微博下參與評(píng)論、轉(zhuǎn)發(fā)用戶的基本信息及評(píng)論內(nèi)容,具體通過(guò)以下3個(gè)模塊實(shí)現(xiàn)。
(1)微博評(píng)論抓取。通過(guò)對(duì)新浪微博WAP站點(diǎn)的分析可知微博評(píng)論頁(yè)面的url很簡(jiǎn)單[14]。如以“https://weibo.cn/comment/H4tkWk09n?page=2”為例,每條微博評(píng)論的url前半部分“https://weibo.cn/comment/”完全相同。url后半部分中“H4tkWk09n”是每條微博的唯一標(biāo)識(shí)符,暫將其稱為wid。url中“page=2”指當(dāng)前評(píng)論的頁(yè)數(shù),每頁(yè)包含10條評(píng)論,評(píng)論越多,評(píng)論頁(yè)數(shù)越多。因此爬蟲(chóng)運(yùn)行前只需獲取微博的唯一標(biāo)識(shí)符wid,構(gòu)造出初始url如“https://weibo.cn/comment/H4tkWk09n?page=1”,每頁(yè)爬完后修改page=page+1即可遞歸爬取直至頁(yè)面中沒(méi)有評(píng)論內(nèi)容[15]。
評(píng)論頁(yè)面的源代碼并不復(fù)雜,如圖4所示。每條評(píng)論的具體內(nèi)容均在html的
(2)微博轉(zhuǎn)發(fā)抓取。微博轉(zhuǎn)發(fā)抓取與微博評(píng)論抓取大致相同,頁(yè)面url結(jié)構(gòu)也基本類似,如“https://weibo.cn/repost/H4tkWk09n?page=2”,表示wid 為H4tkWk09n的微博轉(zhuǎn)發(fā)的第二頁(yè),構(gòu)造url遞歸爬取時(shí)可模仿評(píng)論部分。
查看網(wǎng)頁(yè)源代碼也可發(fā)現(xiàn),每條轉(zhuǎn)發(fā)的全部?jī)?nèi)容均在
如圖6所示,文本兩次出現(xiàn)“//@”,其中“//@”指轉(zhuǎn)發(fā)微博?!鞍逅⒃诎驶h的馬甲”轉(zhuǎn)發(fā)“老方有腔調(diào)”的微博,“老方有腔調(diào)”轉(zhuǎn)發(fā)“哈三五四青年二代”的微博,“哈三五四青年二代”前面沒(méi)有“//@”則表示轉(zhuǎn)發(fā)原微博。如果“哈三五四青年二代”是一層轉(zhuǎn)發(fā),那么“板刷在笆籬的馬甲”即為原微博的三層轉(zhuǎn)發(fā)。由此可添加“轉(zhuǎn)發(fā)層級(jí)”屬性,用于后期分析熱點(diǎn)事件的傳播深度。
(3)用戶基本信息抓取。用戶基本信息包括微博數(shù)、關(guān)注數(shù)、粉絲數(shù)、昵稱、性別、地區(qū)、生日,少數(shù)用戶還自己完善了簡(jiǎn)介、感情狀況、認(rèn)證信息、性取向等信息。本系統(tǒng)對(duì)每種信息都進(jìn)行爬取,能獲取到信息則存入數(shù)據(jù)庫(kù),無(wú)則以“/”填充。
上述信息需在兩個(gè)頁(yè)面中獲取,如“https://weibo.cn/u/2672074571”中包括用戶的微博數(shù)、關(guān)注數(shù)及粉絲數(shù),“https://weibo.cn/2672074571/info”中則包含用戶的其它基本信息,如昵稱、性別、地區(qū)、生日等。不同用戶基本信息頁(yè)面url中改變的僅為uid(如2672074571)這一參數(shù)。在微博評(píng)論抓取中獲得uid后即可導(dǎo)入構(gòu)造url。兩個(gè)頁(yè)面源代碼分別如圖7和圖8所示,第一個(gè)頁(yè)面源代碼仍較規(guī)范可用xpath提取,而第二個(gè)頁(yè)面源碼中的信息會(huì)因不同用戶完善資料程度的不同有種類和數(shù)量上的差別,因此使用re正則表達(dá)式對(duì)每條信息分別匹配查找。
通過(guò)以上3個(gè)模塊最多可獲得一個(gè)用戶的21條信息,本系統(tǒng)將這些能夠獲取的數(shù)據(jù)全部加以儲(chǔ)存并根據(jù)需要提取不同數(shù)據(jù)進(jìn)行相應(yīng)分析。
2.3 數(shù)據(jù)存儲(chǔ)與分析
(1)Neo4j圖數(shù)據(jù)庫(kù)。Neo4j是一個(gè)高性能的NoSQL圖形數(shù)據(jù)庫(kù),它將結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在網(wǎng)絡(luò)圖上而不是表中[16]。本系統(tǒng)將每個(gè)微博用戶抽象為節(jié)點(diǎn),將評(píng)論或轉(zhuǎn)發(fā)關(guān)系抽象為兩個(gè)節(jié)點(diǎn)之間的連邊,利用Neo4j形象地展現(xiàn)出豐富的用戶關(guān)系,有效提升復(fù)雜關(guān)系數(shù)據(jù)查詢效率[17]。
(2)ECharts庫(kù)。ECharts是一個(gè)使用JavaScript實(shí)現(xiàn)的開(kāi)源圖表庫(kù),可以流暢地運(yùn)行在PC和移動(dòng)設(shè)備上,底層依賴輕量級(jí)的Canvas類庫(kù) ZRender,提供直觀、生動(dòng)、交互豐富、可高度個(gè)性化定制的數(shù)據(jù)可視化圖表[18-20]。根據(jù)不同需求,本系統(tǒng)可導(dǎo)入Pyecharts生成各種ECharts圖表形象地展示數(shù)據(jù)。
3 系統(tǒng)優(yōu)化
3.1 圖形用戶界面
由于每次采集熱點(diǎn)微博下的用戶信息時(shí)都需獲取微博的唯一標(biāo)識(shí)符wid,并手動(dòng)填入config.py文件中,對(duì)本系統(tǒng)用戶特別是沒(méi)有開(kāi)發(fā)經(jīng)驗(yàn)的使用者而言十分不方便。因此,系統(tǒng)基于Tkinter庫(kù)設(shè)計(jì)并實(shí)現(xiàn)了圖形用戶界面,如圖9所示。用戶只需在界面文本框中輸入微博url或感興趣的主題關(guān)鍵字,系統(tǒng)將輸入的內(nèi)容存入臨時(shí)文件中,并經(jīng)過(guò)預(yù)處理提取出wid傳遞給爬蟲(chóng)進(jìn)行爬取。
3.2 水軍識(shí)別
對(duì)爬取的熱點(diǎn)微博中的用戶數(shù)據(jù)進(jìn)行分析發(fā)現(xiàn),部分微博數(shù)據(jù)存在蹊蹺。如圖10所示,微博轉(zhuǎn)發(fā)量為點(diǎn)贊量的27倍且高達(dá)千萬(wàn),而多數(shù)微博呈現(xiàn)的規(guī)律為轉(zhuǎn)發(fā)數(shù)遠(yuǎn)小于點(diǎn)贊數(shù),如圖11所示。原因顯而易見(jiàn),大多數(shù)人愿意給喜歡的微博隨手點(diǎn)個(gè)贊而不是花費(fèi)更多的時(shí)間轉(zhuǎn)發(fā)到自己首頁(yè)。鑒于微博的轉(zhuǎn)發(fā)、點(diǎn)贊規(guī)則:一個(gè)賬號(hào)可以轉(zhuǎn)發(fā)某條微博無(wú)數(shù)次,卻只能點(diǎn)一次贊,可以認(rèn)為圖10是大量用戶多次轉(zhuǎn)發(fā)同一條微博所致。查看可疑微博轉(zhuǎn)發(fā)內(nèi)容證實(shí)了這一點(diǎn),如圖12所示,多名疑似機(jī)器號(hào)的用戶轉(zhuǎn)發(fā)同一條微博時(shí)附帶無(wú)意義的內(nèi)容。進(jìn)入這些疑似機(jī)器用戶的主頁(yè)也可發(fā)現(xiàn),其存在等級(jí)低、粉絲少、多次轉(zhuǎn)發(fā)相同微博、無(wú)原創(chuàng)微博等共性特征,由此可以判定這些具有類似共性特征的用戶為“網(wǎng)絡(luò)水軍”。
在某些特定數(shù)據(jù)分析需求下,大量“網(wǎng)絡(luò)水軍”嚴(yán)重影響了熱點(diǎn)微博下用戶信息的分析結(jié)果,亟需對(duì)爬取的用戶隊(duì)列進(jìn)行優(yōu)化,識(shí)別并移除“網(wǎng)絡(luò)水軍”??紤]到“網(wǎng)絡(luò)水軍”沒(méi)有社交圈,粉絲數(shù)幾乎為零,設(shè)置系統(tǒng)在爬取時(shí)識(shí)別粉絲數(shù)小于n(n可以根據(jù)數(shù)據(jù)分析需求進(jìn)行相應(yīng)的設(shè)置,本系統(tǒng)中設(shè)置n=3)的用戶并標(biāo)記為“網(wǎng)絡(luò)水軍”,在用戶分析時(shí)可以選擇將這些“網(wǎng)絡(luò)水軍”過(guò)濾掉。
4 結(jié)語(yǔ)
新浪微博作為國(guó)內(nèi)最有影響力的社交媒體平臺(tái),為輿情分析、社會(huì)關(guān)系挖掘等提供了海量有價(jià)值的數(shù)據(jù),如何獲取和分析這些數(shù)據(jù)尤為重要。為實(shí)時(shí)獲取并分析特定微博下轉(zhuǎn)發(fā)、評(píng)論用戶相關(guān)信息,本文設(shè)計(jì)了基于新浪微博的用戶信息采集分析系統(tǒng)。本系統(tǒng)克服微博反爬蟲(chóng)機(jī)制,利用Scrapy框架全面、高效地獲取數(shù)據(jù),爬取的信息實(shí)時(shí)傳入Neo4j圖數(shù)據(jù)庫(kù)并可根據(jù)需求生成Echarts圖表。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)具有針對(duì)性強(qiáng)、穩(wěn)定性高、數(shù)據(jù)采集速度快、分析結(jié)果直觀等優(yōu)點(diǎn),為用戶關(guān)系研究提供了新方法。
參考文獻(xiàn):
[1] 羅咪. 基于Python的新浪微博用戶數(shù)據(jù)獲取技術(shù)[J]. 電子世界, 2018(5): 138-139.
[2] 張章學(xué). 社交網(wǎng)絡(luò)敏感數(shù)據(jù)獲取方法研究[J]. 軟件導(dǎo)刊, 2018, 17(3): 56-58.
[3] TUMASJAN A,SPRENGER T O,SANDNER P G,et al. Election forecasts with twitter: how 140 characters reflect the political landscape[J]. Social Science Computer Review,2011,29(4): 402-418.
[4] 魏冬梅,何忠秀,唐建梅. 基于Python的Web信息獲取方法研究[J]. 軟件導(dǎo)刊, 2018, 17(1): 41-43.
[5] 張琳,熊斯攀. 基于Neo4j的社交網(wǎng)絡(luò)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J]. 情報(bào)探索, 2018(8):77-82.
[6] FAN Y H,Design and implementation of distributed crawler system based on scrapy[C]. ?Chongqing, Peoples R China: 2017 3rd International Conference on Environmental Science and Material Application (ESMA),2017:25-26.
[7] 徐嘉成. 基于k-means聚類和TF-IDF的新浪微博輿情分析[D]. 鞍山:遼寧科技大學(xué), 2016.
[8] 李琳. 基于Python的網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 信息通信,2017(9): 26-27.
[9] 謝克武. 大數(shù)據(jù)環(huán)境下基于Python的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)[J]. 電子制作, 2017(9): 44-45.
[10] 陳智,梁娟,謝兵,等. 新浪微博數(shù)據(jù)爬取研究[J]. 物聯(lián)網(wǎng)技術(shù), 2016(12): 60-63.
[11] 鄧萬(wàn)宇,劉光達(dá),董瑩瑩. 一種基于Scrapy-Redis的分布式微博數(shù)據(jù)采集方案[J]. 信息技術(shù),2018(11): 59-62.
[12] 安子建. 基于Scrapy框架的網(wǎng)絡(luò)爬蟲(chóng)實(shí)現(xiàn)與數(shù)據(jù)抓取分析[D]. 長(zhǎng)春:吉林大學(xué),2017.
[13] 樊海英. 基于Scrapy的分布式網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[D]. 北京:北京工業(yè)大學(xué),2017.
[14] 賴敬之. 基于網(wǎng)絡(luò)爬蟲(chóng)的新浪微博數(shù)據(jù)分析網(wǎng)站的建立[J]. 通訊世界,2018(2): 73-74.
[15] 雷程程,張岸,齊清文,等. 格網(wǎng)化的位置微博數(shù)據(jù)抓取與人群信息提取[J]. 測(cè)繪科學(xué),2017,42(2): 125-129.
[16] 林啟勝,王磊,周喜,等. 基于圖數(shù)據(jù)庫(kù)的文獻(xiàn)檢索方法優(yōu)化與實(shí)現(xiàn)[J]. 微電子學(xué)與計(jì)算機(jī),2017,34(10):63-67.
[17] 王紅,張青青,蔡偉偉,等. 基于Neo4j的領(lǐng)域本體存儲(chǔ)方法研究[J]. 計(jì)算機(jī)應(yīng)用研究,2017, 34(8): 2404-2407.
[18] 黃雅莉,鐘琪. 基于Ajax與Echarts的網(wǎng)頁(yè)動(dòng)態(tài)數(shù)據(jù)加載[J]. 科技資訊,2018(23): 34-37.
[19] 王子毅,張春海. 基于ECharts的數(shù)據(jù)可視化分析組件設(shè)計(jì)實(shí)現(xiàn)[J]. 微型機(jī)與應(yīng)用,2016,35(14):46-48,51.
[20] 趙海國(guó). Ajax技術(shù)支持下的ECharts動(dòng)態(tài)數(shù)據(jù)實(shí)時(shí)刷新技術(shù)的實(shí)現(xiàn)[J]. 電子技術(shù),2018(3):25-27,57.
(責(zé)任編輯:孫 娟)