周林 重慶大學(xué)城市科技學(xué)院
校園網(wǎng)絡(luò)平臺(tái)主要包括校園論壇、校園貼吧、博客、微博、公眾平臺(tái)等,是學(xué)生最活躍的信息交流平臺(tái)。大學(xué)生的互聯(lián)網(wǎng)參與行為表現(xiàn)出參與意識(shí)強(qiáng)、知識(shí)層次高、個(gè)性化鮮明、好奇心重等特點(diǎn),他們?cè)凇盎ヂ?lián)網(wǎng)世界”里非?;钴S。從新媒體研究的視角來(lái)看,學(xué)生既是網(wǎng)絡(luò)信息的接受者,也是網(wǎng)絡(luò)信息的制造者與傳播者,對(duì)校園網(wǎng)平臺(tái)信息進(jìn)行有效的監(jiān)測(cè),對(duì)督促學(xué)生良好的網(wǎng)絡(luò)行為引導(dǎo)、正確價(jià)值觀的構(gòu)建等具有積極的意義和價(jià)值。校園網(wǎng)平臺(tái)信息的主題相關(guān)性較強(qiáng),因此選擇主題爬蟲“面向特定主題”的信息進(jìn)行抓取,能夠有效實(shí)現(xiàn)校園網(wǎng)平臺(tái)信息的監(jiān)測(cè)。
在爬蟲技術(shù)應(yīng)用中,針對(duì)不同類型的網(wǎng)絡(luò)平臺(tái),所采用的爬蟲關(guān)鍵技術(shù)有所區(qū)別,比如對(duì)于傳統(tǒng)網(wǎng)頁(yè)信息的采集,采用傳統(tǒng)爬蟲爬取更多頁(yè)面,對(duì)于博客、微博、個(gè)人主頁(yè)等類型的網(wǎng)絡(luò)平臺(tái),考慮到其自行管理特征和實(shí)時(shí)更新特征,需要盡可能的縮短爬行周期,與信息更新的速度相匹配。在以往的應(yīng)用中,簡(jiǎn)單咨詢聚合(RSS)被廣泛應(yīng)用,但隨著信息技術(shù)的不斷發(fā)展,在不利用RSS的情況下,需要在爬行策略上進(jìn)行思考,采取更多的、更有效的策略。從高校學(xué)生活躍度較高的網(wǎng)絡(luò)平臺(tái)情況來(lái)看,微博、博客、個(gè)人主頁(yè)等是最受歡迎的,因此在具體的應(yīng)用中,需要先對(duì)各網(wǎng)絡(luò)鏈接類型進(jìn)行區(qū)分,然后依據(jù)鏈接類型與鏈接結(jié)構(gòu)爬取信息,縮短爬行周期,獲得更好的效果。
在進(jìn)行主題相關(guān)性分析時(shí),先確定分析的流程,即網(wǎng)站結(jié)構(gòu)分析→鏈接類型分析→網(wǎng)頁(yè)內(nèi)容獲取→主題相似度計(jì)算。在具體實(shí)踐中,先對(duì)學(xué)生主要參與的網(wǎng)絡(luò)平臺(tái)進(jìn)行分析分類,明確每個(gè)網(wǎng)站的特定結(jié)構(gòu),然后針對(duì)性的對(duì)爬蟲做統(tǒng)一的設(shè)置,以避免和排除不相干鏈接的干擾。比如新浪微博網(wǎng)址均以https://weibo.com/開(kāi)頭,那么在在爬蟲設(shè)計(jì)時(shí)只要滿足前綴為這個(gè)格式的即可,這樣可以有效濾過(guò)其他網(wǎng)站的廣告URL。在個(gè)人往來(lái)平臺(tái)的的信息爬取中,以目錄頁(yè)為種子,以列表中所有鏈接地址為爬取內(nèi)容,則可爬取該主頁(yè)所信息。
當(dāng)獲得全部網(wǎng)絡(luò)頁(yè)面鏈接之后,為避免“主題漂移”,還需通過(guò)獲取網(wǎng)頁(yè)內(nèi)容來(lái)評(píng)價(jià)主題相關(guān)性。為了提高網(wǎng)絡(luò)信息爬取效率,需要先對(duì)網(wǎng)絡(luò)內(nèi)容進(jìn)行判斷,然后進(jìn)行主題相似度分析,以避免主題無(wú)關(guān)性信息下載。在實(shí)踐中,選擇樸素貝葉斯算法,其概率公式為:

其中,B為信息網(wǎng)頁(yè),C為關(guān)鍵詞信息類別,通過(guò)這個(gè)公式可對(duì)比出“是/非”的概率,然后在根據(jù)關(guān)鍵詞w及權(quán)重t,對(duì)T個(gè)網(wǎng)頁(yè)或T篇文章進(jìn)行爬取,最終依據(jù)以下兩個(gè)公式判斷網(wǎng)頁(yè)信息是否主題相關(guān)。

其中,R是主題相關(guān)的數(shù)量,N是主題不相關(guān)的數(shù)量,v是不同詞數(shù)量。
在主題爬蟲系統(tǒng)框架設(shè)計(jì)時(shí),先對(duì)爬蟲進(jìn)行初始化設(shè)計(jì),包括種子管理與爬蟲定時(shí)器設(shè)置,然后實(shí)施網(wǎng)頁(yè)抓取,采用多線程技術(shù),實(shí)現(xiàn)增量爬取,減少網(wǎng)絡(luò)信息的重復(fù)爬取。針對(duì)校園網(wǎng)絡(luò)平臺(tái)的信息監(jiān)測(cè)要求,主題爬蟲系統(tǒng)在工作時(shí)需要實(shí)現(xiàn)四個(gè)爬取過(guò)程的內(nèi)容,包括頁(yè)面抓取、頁(yè)面解析、去重、任務(wù)調(diào)度。
針對(duì)校園網(wǎng)絡(luò)平臺(tái)中學(xué)生個(gè)人主頁(yè)地址集中的特征,可在深度優(yōu)先爬取的基礎(chǔ)上,采用多線程技術(shù)實(shí)現(xiàn)多個(gè)頁(yè)面爬取任務(wù)并發(fā)執(zhí)行,可以同時(shí)爬取多個(gè)個(gè)人網(wǎng)絡(luò)主頁(yè),最大限度提升爬取效率。考慮到校園網(wǎng)絡(luò)平臺(tái)上的信息是不斷更新的,而且原有信息多是保留的,這時(shí)為了盡可能減少重復(fù)爬取,可采用增強(qiáng)爬取的方法,在爬蟲定時(shí)器的控制下,按照設(shè)定好的爬取周期進(jìn)行二次爬取或多次爬取。在一次爬取時(shí),所有檢索信息按照URL和sha-1值以extractor表的方式存儲(chǔ)數(shù)據(jù)庫(kù),當(dāng)二次爬取時(shí),為避免重復(fù),系統(tǒng)先在數(shù)據(jù)庫(kù)中查詢前一次爬取的數(shù)據(jù),查看URL是否存在,以及文章內(nèi)容sha-1值是否變化,若URL存在且sha-1值無(wú)變化,則無(wú)需再次爬取;若sha-1值有變化,則在數(shù)據(jù)庫(kù)信息表中更新文章信息。
在主題相似度計(jì)算時(shí),中文分詞是基礎(chǔ),這就需要選擇合適的分詞器,而且分詞器的效果直接影響主題相似度計(jì)算的準(zhǔn)確性。分詞器的選擇中,要充分考慮系統(tǒng)要求、面向網(wǎng)頁(yè)的特征、網(wǎng)頁(yè)信息的文字特征等因素,同時(shí)還需要注重單擊分詞速度、分詞精度等指標(biāo),而且還要滿足“支持自定義詞典”的功能。分詞器選定后,在相應(yīng)的校園網(wǎng)絡(luò)平臺(tái)選取微博、博客、論壇、個(gè)人主頁(yè)等平臺(tái)上的文章進(jìn)行訓(xùn)練,用選定的分詞系統(tǒng)進(jìn)行分詞處理。在樸素貝葉斯算法函數(shù)下,分別計(jì)算出網(wǎng)頁(yè)文章信息屬于和不屬于相關(guān)主題的概率。最后,對(duì)于滿足爬行條件的網(wǎng)頁(yè)信息,將HTML文件下載到本地,然后在數(shù)據(jù)庫(kù)中建立一一對(duì)應(yīng)額文件夾進(jìn)行保存。
頁(yè)面爬取流程完成后,對(duì)信息內(nèi)容的抽取將成為主要任務(wù)。首先對(duì)網(wǎng)頁(yè)信息進(jìn)行抽取,比如微博內(nèi)容、博客文章、網(wǎng)頁(yè)文章等,抽取內(nèi)容主要包括標(biāo)題、發(fā)布時(shí)間、內(nèi)容。當(dāng)網(wǎng)頁(yè)信息中包含圖片內(nèi)容時(shí),可借助圖片轉(zhuǎn)換文字的軟件工具提取文字信息,然后對(duì)文字進(jìn)行比對(duì)處理,最后存儲(chǔ)于數(shù)據(jù)庫(kù)。由于校園網(wǎng)絡(luò)平臺(tái)中的信息內(nèi)容是不定時(shí)更新的,而且學(xué)生對(duì)網(wǎng)絡(luò)的參與熱情較高,在互聯(lián)網(wǎng)上十分活躍,發(fā)布信息較為頻繁,因此針對(duì)這些信息的監(jiān)測(cè),需要系統(tǒng)對(duì)網(wǎng)頁(yè)信息的爬取周期更短,需要更大頻率的監(jiān)測(cè)。從目前最常用的方法來(lái)看,主要采取抽取定時(shí)器、爬蟲定時(shí)器等功能。爬取定時(shí)器設(shè)置一定的爬取周期,然后以自動(dòng)的方式在周期內(nèi)實(shí)現(xiàn)網(wǎng)頁(yè)信息爬取。
系統(tǒng)正常運(yùn)行中,雖然可以通過(guò)數(shù)據(jù)庫(kù)存儲(chǔ)的原始文件進(jìn)行比對(duì),最大限度避免網(wǎng)頁(yè)信息的重復(fù)爬取與解析,但實(shí)際上這樣會(huì)大大降低程序的效率。而且校園網(wǎng)絡(luò)平臺(tái)不僅僅局限于博客、微博、論壇、個(gè)人主頁(yè)等作者發(fā)布的“主貼”,還會(huì)涉及到很多的“回復(fù)”信息,而這些信息同樣需要進(jìn)行監(jiān)測(cè)。分析可知,在校園網(wǎng)絡(luò)平臺(tái)上用戶發(fā)布的言論都是按照時(shí)間順序排序的,因此針對(duì)這些信息則可以選用爬過(guò)的言論發(fā)表時(shí)間中最大值作為標(biāo)準(zhǔn),對(duì)網(wǎng)頁(yè)上這類信息進(jìn)行判斷其是否已經(jīng)被爬取過(guò)?;谶@種考慮,可以在數(shù)據(jù)庫(kù)建立一個(gè)“歷史時(shí)間表”,借助存儲(chǔ)的時(shí)間信息完成去重任務(wù)。在任務(wù)調(diào)度中,首先需要對(duì)各類校園網(wǎng)絡(luò)平臺(tái)上的用戶賬號(hào)進(jìn)行匯總統(tǒng)計(jì),然后在多線程爬取方式下,依據(jù)賬號(hào)書目確定開(kāi)啟線程的個(gè)數(shù),以確保各線程間無(wú)重復(fù)競(jìng)爭(zhēng)的問(wèn)題。