王樹(shù)梅,尚衍亮
(江蘇師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 徐州 222111)
隨著信息時(shí)代的到來(lái),知網(wǎng)成為國(guó)內(nèi)最大的論文數(shù)據(jù)庫(kù),如何高效地獲取論文信息,挖掘論文價(jià)值,成為了一個(gè)亟待解決的問(wèn)題。為了解決該問(wèn)題,人們開(kāi)始嘗試應(yīng)用網(wǎng)絡(luò)爬蟲(chóng)來(lái)獲取信息。網(wǎng)絡(luò)爬蟲(chóng)(web spiders)是模擬用戶(hù)在瀏覽器上的操作,從特定網(wǎng)站,自動(dòng)提取對(duì)自己有價(jià)值的信息的腳本程序。目前,主要使用Python進(jìn)行網(wǎng)絡(luò)爬蟲(chóng)[1]編寫(xiě)。網(wǎng)絡(luò)爬蟲(chóng)大致可分為以下幾種類(lèi)型:普通網(wǎng)絡(luò)爬蟲(chóng)、聚焦網(wǎng)絡(luò)爬蟲(chóng)、增量網(wǎng)絡(luò)爬蟲(chóng)和深網(wǎng)絡(luò)爬蟲(chóng)[2-4]。當(dāng)爬蟲(chóng)爬取網(wǎng)頁(yè)時(shí),解析出鏈接資源的超鏈接,并將這些超鏈接放入“待爬取隊(duì)列”,然后按照一定的順序進(jìn)行數(shù)據(jù)爬取,如果在爬取的過(guò)程中遇到錯(cuò)誤,爬蟲(chóng)會(huì)跳過(guò)該超鏈接,進(jìn)行下一個(gè)超鏈接的爬取。如果信息需要存儲(chǔ)的話(huà),可以選擇將信息保存到文檔中,也可以保存到數(shù)據(jù)庫(kù)中[5]。
科研能力不僅體現(xiàn)了一個(gè)科研人員的學(xué)術(shù)修養(yǎng),更是體現(xiàn)高校辦學(xué)實(shí)力的核心指標(biāo)。近幾年,高校的科研能力不斷加強(qiáng),但是因?yàn)榘l(fā)展的原因,各高校的科研能力也參差不齊。同樣,對(duì)于個(gè)人來(lái)說(shuō),也存在著較大的差距。知網(wǎng)作為一個(gè)最大的數(shù)字圖書(shū)館,為全社會(huì)的專(zhuān)家學(xué)者提供論文資源和最專(zhuān)業(yè)的學(xué)習(xí)平臺(tái)。目前知網(wǎng)存儲(chǔ)著大量的學(xué)術(shù)論文和學(xué)者信息,因此,該系統(tǒng)使用爬蟲(chóng)技術(shù)對(duì)知網(wǎng)進(jìn)行爬取,爬取與個(gè)人和學(xué)校科研能力相關(guān)的評(píng)價(jià)指標(biāo),如論文數(shù)、論文被引用量等,然后清洗整理,多維度分析論文數(shù)據(jù),直觀地展示個(gè)人及學(xué)校的科研能力。整個(gè)系統(tǒng)最終以Web網(wǎng)站呈現(xiàn),用戶(hù)只需輸入相應(yīng)的關(guān)鍵字,即可看到分析結(jié)果。
目前,越來(lái)越多的學(xué)者開(kāi)始認(rèn)識(shí)到知網(wǎng)數(shù)據(jù)的價(jià)值,如胡冬妮等[6]分析了知網(wǎng)的841篇論文,總結(jié)國(guó)內(nèi)情感識(shí)別的發(fā)展脈絡(luò),指出國(guó)內(nèi)情感識(shí)別的研究重點(diǎn)及趨勢(shì)。游濤等[7]借助中國(guó)知網(wǎng)的數(shù)據(jù), 對(duì)本校的論文發(fā)表總量、年論文發(fā)表趨勢(shì)、論文總被引次數(shù)、論文總下載次數(shù)等數(shù)據(jù)進(jìn)行分析,并與其他高校進(jìn)行對(duì)比分析,最后對(duì)高校的科研能力進(jìn)行評(píng)價(jià)。潘惠梅等[8]通過(guò)手工方式獲取2017年以來(lái)知網(wǎng)收錄于地理教學(xué)相關(guān)的論文數(shù)據(jù),利用Bicomb 2.0和SPSS 20.0軟件對(duì)高頻關(guān)鍵詞進(jìn)行聚類(lèi)與可視化分析,對(duì)2017的地理教學(xué)知識(shí)進(jìn)行回顧,通過(guò)對(duì)知網(wǎng)的數(shù)據(jù)分析來(lái)指導(dǎo)教學(xué)。李智超等[9]以中國(guó)知網(wǎng)的論文數(shù)據(jù)為基礎(chǔ),檢索雞傳染性支氣管病毒混合感染案例,對(duì)混感臨床案例的地區(qū)分布、發(fā)病雞品種和雞傳染性支氣管炎病毒混合感染疾病類(lèi)型進(jìn)行分析。
根據(jù)上面的分析可以得出,知網(wǎng)論文的價(jià)值受到了越來(lái)越多人的關(guān)注。但是由于缺乏技術(shù)上的支持,大部分針對(duì)知網(wǎng)數(shù)據(jù)的分析仍然停留在手工階段[10-13],手工獲取知網(wǎng)論文數(shù)據(jù),格式化數(shù)據(jù),最后使用相關(guān)的分析工具進(jìn)行分析。這種方式雖然可以操作,但是耗時(shí)耗力且分析的效果較差。因此,該課題擬設(shè)計(jì)出一套集網(wǎng)絡(luò)爬蟲(chóng)和多維度分析為一體的系統(tǒng)。該系統(tǒng)可以代替手工方式獲取論文信息,專(zhuān)家學(xué)者只需要輸入相關(guān)的關(guān)鍵詞,即可得到分析結(jié)果,從而節(jié)省了人力和時(shí)間。
(1)在線(xiàn)論文爬取模塊。
該模塊模擬瀏覽器操作,根據(jù)用戶(hù)所需的關(guān)鍵詞,爬取論文列表頁(yè),獲取論文標(biāo)題、論文鏈接、論文發(fā)表時(shí)間、論文來(lái)源和論文作者等信息,最后將數(shù)據(jù)存入數(shù)據(jù)庫(kù)。根據(jù)獲取到的論文鏈接來(lái)爬取論文詳細(xì)頁(yè)面,得到論文的詳細(xì)信息,并實(shí)時(shí)存入MySQL數(shù)據(jù)庫(kù)[14]。爬取模塊同時(shí)提供爬蟲(chóng)狀態(tài)展示,向用戶(hù)展示實(shí)時(shí)爬取的論文列表。
(2)多維度分析模塊。
該模塊清洗整理論文信息后進(jìn)行多維度分析,包括年論文發(fā)表數(shù)量走勢(shì)、高產(chǎn)作者展示、高產(chǎn)機(jī)構(gòu)展示、基金占比等,同時(shí)給出單篇論文的作者關(guān)系圖和單篇論文的詳細(xì)信息。
該系統(tǒng)的用例圖如圖1所示。
圖1 系統(tǒng)用例圖
系統(tǒng)共兩大部分:在線(xiàn)論文爬取系統(tǒng)和多維度分析系統(tǒng)。
(1)在線(xiàn)論文爬取系統(tǒng)分為論文列表頁(yè)爬取和詳情頁(yè)爬取。論文列表頁(yè)用來(lái)爬取論文的列表頁(yè),獲取論文標(biāo)題,論文鏈接,論文發(fā)表時(shí)間,論文數(shù)據(jù)庫(kù),論文作者等信息。列表頁(yè)主要用來(lái)獲取論文的詳細(xì)信息。同時(shí)提供實(shí)時(shí)爬取狀態(tài)展示。本系統(tǒng)將爬蟲(chóng)內(nèi)置到網(wǎng)頁(yè)當(dāng)中,實(shí)現(xiàn)可視化操作,一鍵爬取。
(2)多維度分析系統(tǒng),使用HightCharts和Echarts進(jìn)行數(shù)據(jù)的多維度分析。其中HighCharts用來(lái)制作年論文發(fā)表數(shù)量走勢(shì)折線(xiàn)圖、高產(chǎn)作者柱狀圖、高產(chǎn)機(jī)構(gòu)展示柱狀圖、基金占比柱狀圖和單篇論文作者關(guān)系圖。
(1)在線(xiàn)論文爬取模塊。
如圖2所示,論文爬取主要分為兩部分,第一步使用Selenium獲取Cookies[15],然后使用Requests和BeautifulSoup4進(jìn)行列表頁(yè)的快速爬取,爬取完成后將列表頁(yè)的論文信息存入數(shù)據(jù)庫(kù)。第二步從數(shù)據(jù)庫(kù)中獲取論文的鏈接,使用之前獲取的Cookies進(jìn)行快速的爬取,并將數(shù)據(jù)存入數(shù)據(jù)庫(kù)。
圖2 爬取模塊結(jié)構(gòu)
(2)多維度分析模塊。
如圖3所示,系統(tǒng)主要由首頁(yè)、熱門(mén)分析頁(yè)面、在線(xiàn)爬蟲(chóng)頁(yè)面、數(shù)據(jù)圖表展示頁(yè)、單篇論文詳情頁(yè)面、爬蟲(chóng)狀態(tài)頁(yè)面這六個(gè)頁(yè)面構(gòu)成。
圖3 多維度分析模塊
·首頁(yè)用來(lái)介紹本網(wǎng)站,包括系統(tǒng)所提供的功能,并提供在線(xiàn)聯(lián)系。
·熱門(mén)分析頁(yè)面用來(lái)展示用戶(hù)關(guān)鍵詞查詢(xún)次數(shù)匯總排行。
·在線(xiàn)爬蟲(chóng)頁(yè)面啟動(dòng)爬蟲(chóng),并給出使用步驟。
·數(shù)據(jù)圖表展示頁(yè)面主要提供了對(duì)該關(guān)鍵詞的數(shù)據(jù)分析展示。
·單篇論文詳情頁(yè)面主要展示了單篇論文的作者關(guān)聯(lián)信息以及論文的詳細(xì)信息。
·爬蟲(chóng)狀態(tài)頁(yè)面主要展示了當(dāng)前爬蟲(chóng)抓取的論文,并提供論文鏈接跳轉(zhuǎn)到單篇論文詳情頁(yè)。
(3)數(shù)據(jù)庫(kù)設(shè)計(jì)。
通過(guò)對(duì)系統(tǒng)的需求分析得出系統(tǒng)中包含了作者、論文、基金、年份、關(guān)鍵詞和學(xué)校等實(shí)體。
系統(tǒng)的所有數(shù)據(jù)表主外鍵關(guān)聯(lián)關(guān)系具體如圖4所示。
圖4 主外鍵關(guān)聯(lián)關(guān)系
(1)論文爬取步驟。
①輸入關(guān)鍵詞:在輸入框內(nèi)輸入你要抓取的相關(guān)的關(guān)鍵字,例如大數(shù)據(jù),然后回車(chē)或者點(diǎn)擊開(kāi)啟爬蟲(chóng)按鈕。
②點(diǎn)擊數(shù)據(jù)分析:等待數(shù)據(jù)爬取結(jié)束之后可以點(diǎn)擊進(jìn)入實(shí)時(shí)數(shù)據(jù)分析界面,當(dāng)然也可以跳過(guò)前面的兩步,直接進(jìn)入實(shí)時(shí)分析界面,選擇系統(tǒng)提供的數(shù)據(jù)。
③等待數(shù)據(jù)爬?。禾崾九老x(chóng)已經(jīng)啟動(dòng),然后等待10秒鐘,等待系統(tǒng)連接到知網(wǎng),此時(shí)可以實(shí)現(xiàn)查看爬取的進(jìn)度和爬取的相關(guān)論文。
④數(shù)據(jù)下載:本系統(tǒng)支持原始數(shù)據(jù)的下載,可以將圖表以圖片的形式下載,當(dāng)然也可以選擇導(dǎo)出原始數(shù)據(jù)并進(jìn)行下載。
圖5為輸入關(guān)鍵字“大數(shù)據(jù)”后爬取的論文結(jié)果列表。
(2)多維度分析結(jié)果。
對(duì)爬取的數(shù)據(jù)進(jìn)行多維度分析,包括論文年發(fā)表數(shù)量、高產(chǎn)作者、高產(chǎn)量機(jī)構(gòu)、基金占比。
圖5 爬取結(jié)果
圖6(a)是對(duì)2005年至2019年CNKI網(wǎng)站上發(fā)表的以“大數(shù)據(jù)”為關(guān)鍵字的論文的統(tǒng)計(jì)數(shù)據(jù),從數(shù)據(jù)折線(xiàn)圖上來(lái)看,發(fā)表論文數(shù)量呈遞增趨勢(shì)。圖6(b)是通過(guò)關(guān)鍵字“大數(shù)據(jù)”爬取的作者發(fā)表論文數(shù)量排名,本校楊現(xiàn)民教授排名第五。圖6(c)通過(guò)關(guān)鍵字“大數(shù)據(jù)”爬取的科研機(jī)構(gòu)發(fā)表論文數(shù)量排名,可以看出武漢大學(xué)在大數(shù)據(jù)研究方面取得的成果較多。圖6(d)為通過(guò)關(guān)鍵字“大數(shù)據(jù)”爬取的基金論文發(fā)表數(shù)量,可以看出基于國(guó)家自然科學(xué)基金發(fā)表論文最多高達(dá)3 486篇。圖7展示了作者關(guān)系,通過(guò)合作關(guān)系,可以找出作者之間的關(guān)聯(lián)狀態(tài)。圖8是爬取的論文詳細(xì)信息,包括論文來(lái)源、作者、發(fā)表期刊以及摘要。
(a)論文年發(fā)表數(shù)量統(tǒng)計(jì) (b)作者論文發(fā)表數(shù)量統(tǒng)計(jì)
(c)機(jī)構(gòu)論文年發(fā)表數(shù)量統(tǒng)計(jì) (d)基金發(fā)表論文數(shù)量
圖7 作者關(guān)系
圖8 論文詳細(xì)信息
系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過(guò)程中,利用了Python和Django技術(shù)、MySQL技術(shù),為系統(tǒng)的開(kāi)發(fā)提供了技術(shù)支持。該系統(tǒng)開(kāi)發(fā)過(guò)程主要包括:需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),概要等步驟。系統(tǒng)將爬蟲(chóng)內(nèi)置在網(wǎng)頁(yè)中,使得爬蟲(chóng)簡(jiǎn)單易用。
科研論文爬取與多維度分析系統(tǒng)在實(shí)際開(kāi)發(fā)中涉及到許多方法和技術(shù),該系統(tǒng)在以后的實(shí)際應(yīng)用中還需要不斷的更新完善。比如監(jiān)督策略、反爬蟲(chóng)策略,加強(qiáng)爬蟲(chóng)的健壯性。網(wǎng)絡(luò)爬蟲(chóng)將采用分布式爬取,提高爬蟲(chóng)的速度,增加目標(biāo)網(wǎng)站的數(shù)量。多維度分析模塊要實(shí)現(xiàn)用戶(hù)定制化分析,分析范圍擴(kuò)大到論文的內(nèi)容,結(jié)合NLP技術(shù)對(duì)論文內(nèi)容進(jìn)行分析,挖掘論文內(nèi)容的價(jià)值。