摘? 要:高校論壇是學(xué)生發(fā)表意見(jiàn)和相互交流的一個(gè)網(wǎng)絡(luò)平臺(tái),也是高校校園輿情的一個(gè)重要信息源頭。高校百度貼吧是以在校生為主導(dǎo)群體的在線交流平臺(tái),貼吧內(nèi)信息在一定程度上反映了學(xué)生的思想動(dòng)態(tài)和輿論導(dǎo)向,文章以“安徽審計(jì)職業(yè)學(xué)院百度貼吧”為例,分析Python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的實(shí)現(xiàn)原理,爬取貼吧內(nèi)的文本數(shù)據(jù),利用分詞、詞頻統(tǒng)計(jì)、詞云圖制作等技術(shù)進(jìn)行數(shù)據(jù)分析,提出輿情結(jié)論和研究展望,為校園相關(guān)部門輿情引導(dǎo)提供幫助和新的思路。
關(guān)鍵詞:網(wǎng)絡(luò)爬蟲(chóng);Python;輿情
中圖分類號(hào):TP391? ? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2023)05-0106-04
Analysis and Research of University Network Public Opinion Data Based on Python Crawler Technology
—Taking“Baidu Post Bar of Anhui Audit College”as an Example
DING Ran
(Anhui Audit College, Hefei? 230601, China)
Abstract: University forum is a network platform for students to express their opinions and communicate with each other, which is also an important information source on campus public opinion. Baidu Post Bar in colleges and universities is an online communication platform dominated by internal students. The information in the post bar reflects the ideological dynamics and public opinion orientation of students to a certain extent. This paper takes “Baidu Post Bar in Anhui Audit College” as an example, analyzes the implementation principle of Python Web crawler technology, and climbs the text data in the post bar. It uses word segmentation, word frequency statistics, word cloud image production and other technologies to analyze the data, puts forward public opinion conclusions and research prospects, and provides help and new ideas for the guidance of public opinion of relevant departments on campus.
Keywords: Web crawler; Python; public opinion
0? 引? 言
隨著互聯(lián)網(wǎng)以及以社交為基礎(chǔ)的互聯(lián)網(wǎng)應(yīng)用不斷迅猛發(fā)展,其背后帶來(lái)的是數(shù)據(jù)的爆炸式增長(zhǎng)[1]。其中,數(shù)據(jù)量指數(shù)級(jí)增長(zhǎng),數(shù)據(jù)結(jié)構(gòu)日趨復(fù)雜,數(shù)據(jù)源涉及各行各業(yè)。對(duì)于高校而言,網(wǎng)絡(luò)的普及一方面豐富了學(xué)校的教育教學(xué)方法,提升了管理者的教育管理水平;另一方面也讓網(wǎng)絡(luò)技術(shù)融入了高校大學(xué)生的學(xué)生和生活中,為其帶來(lái)便利。
高校大學(xué)生是一個(gè)思想十分活躍的群體,他們傾向于將自己所見(jiàn)所感在網(wǎng)絡(luò)上發(fā)布,諸如百度貼吧、微博、抖音、微信公眾號(hào)、微信朋友圈等網(wǎng)絡(luò)平臺(tái)。這些網(wǎng)絡(luò)平臺(tái)支持的轉(zhuǎn)發(fā)、評(píng)論、分享等便捷功能,促使并加快了網(wǎng)絡(luò)數(shù)據(jù)的增長(zhǎng)。在這些網(wǎng)絡(luò)平臺(tái)上,有學(xué)生發(fā)布的大量的信息資源,內(nèi)容包羅萬(wàn)象、豐富多彩,在一定程度上代表了高校大學(xué)生的思想和行為。然而,面對(duì)復(fù)雜的網(wǎng)絡(luò)環(huán)境、大數(shù)據(jù)的信息浪潮,大學(xué)生在信息甄別能力上還比較薄弱,在強(qiáng)有力的信息沖擊下容易迷失自我。最初個(gè)人發(fā)布的意見(jiàn),隨著意見(jiàn)的擴(kuò)散和討論的逐步深入,各種觀點(diǎn)的交流與碰撞,就可能轉(zhuǎn)化為大多數(shù)人的集體意識(shí),討論的主題逐漸趨向于特定的焦點(diǎn),最終形成具有一定規(guī)模及明確指向的校園網(wǎng)絡(luò)輿情,從而對(duì)和諧校園的建設(shè)產(chǎn)生一定的影響[2]。
1? 數(shù)據(jù)來(lái)源
本文以“安徽審計(jì)職業(yè)學(xué)院百度貼吧”為例,對(duì)校園貼吧網(wǎng)絡(luò)輿情數(shù)據(jù)進(jìn)行分析研究,掌握校園貼吧網(wǎng)絡(luò)輿情的現(xiàn)狀及發(fā)展趨勢(shì),進(jìn)而加強(qiáng)輿情引導(dǎo),為在校大學(xué)生的健康成長(zhǎng)提供一個(gè)更加良好的網(wǎng)絡(luò)氛圍,促進(jìn)校園網(wǎng)絡(luò)建設(shè)健康發(fā)展。安徽審計(jì)職業(yè)學(xué)院在校大學(xué)生人數(shù)達(dá)7 000余人,校園內(nèi)學(xué)生公寓、普通教室、實(shí)訓(xùn)機(jī)房、圖書(shū)館等學(xué)生學(xué)習(xí)生活場(chǎng)所均已連接互聯(lián)網(wǎng),校園內(nèi)無(wú)線網(wǎng)絡(luò)實(shí)現(xiàn)全覆蓋,在校生上網(wǎng)條件便利,對(duì)于社會(huì)發(fā)生的熱點(diǎn)話題,在校學(xué)生可以通過(guò)校園百度貼吧網(wǎng)絡(luò)平臺(tái)方便迅速地發(fā)布意見(jiàn)、表達(dá)觀點(diǎn)。打開(kāi)百度官網(wǎng),進(jìn)入百度貼吧,搜索“安徽審計(jì)職業(yè)學(xué)院”點(diǎn)擊進(jìn)入貼吧,這時(shí)進(jìn)入“安徽審計(jì)學(xué)院吧”百度貼吧網(wǎng)頁(yè),網(wǎng)頁(yè)導(dǎo)航欄目主要包括“看帖”“圖片”“吧主推薦”“視頻”四部分內(nèi)容,其中“看貼”內(nèi)容最為豐富,截至2022年3月,共有帖子數(shù)90多萬(wàn)。本文通過(guò)Python爬蟲(chóng)技術(shù)爬取2021年12月17日至2022年3月17日時(shí)間段內(nèi)的發(fā)帖內(nèi)容,具體包括發(fā)帖的標(biāo)題、回復(fù)內(nèi)容、作者名稱、發(fā)布時(shí)間等;再將發(fā)帖內(nèi)容數(shù)據(jù)存儲(chǔ)為Excel表格文件,作為數(shù)據(jù)源;最后通過(guò)Python數(shù)據(jù)分析技術(shù)進(jìn)行分析。
2? 相關(guān)理論及技術(shù)實(shí)現(xiàn)
2.1? 網(wǎng)絡(luò)爬蟲(chóng)理論
互聯(lián)網(wǎng)上所有的資源都是通過(guò)URL(統(tǒng)一資源定位符,通常所說(shuō)的網(wǎng)址)作為相關(guān)描述放置在服務(wù)器上的,網(wǎng)址的訪問(wèn)是通過(guò)HTTP協(xié)議實(shí)現(xiàn),HTTP協(xié)議是超文本傳輸協(xié)議,是一個(gè)基于“請(qǐng)求與響應(yīng)”模式的、無(wú)狀態(tài)的應(yīng)用層協(xié)議[3]。訪問(wèn)網(wǎng)址的基本流程如圖1所示。
互聯(lián)網(wǎng)上大量的資源節(jié)點(diǎn)連接在一起,很像一張大大的“蜘蛛網(wǎng)”,網(wǎng)絡(luò)爬蟲(chóng)就像蜘蛛一樣,在網(wǎng)上沿著URL絲線爬行。網(wǎng)絡(luò)爬蟲(chóng)就是利用軟件工具模擬瀏覽器訪問(wèn)URL,并下載每一個(gè)URL對(duì)應(yīng)的網(wǎng)頁(yè)內(nèi)容,完成網(wǎng)頁(yè)數(shù)據(jù)的收集整理與分析的過(guò)程。
網(wǎng)絡(luò)爬蟲(chóng)需要注意合法性問(wèn)題,網(wǎng)站上涉及的個(gè)人隱私數(shù)據(jù)是不允許爬取的,更不能將爬取的數(shù)據(jù)用于商業(yè)用途或違反法律規(guī)定。在爬取一個(gè)網(wǎng)站的數(shù)據(jù)時(shí),合法性需要遵守。本文爬蟲(chóng)數(shù)據(jù)僅用于科學(xué)項(xiàng)目研究,主要針對(duì)本校大學(xué)生在校園貼吧上發(fā)布的內(nèi)容進(jìn)行輿情分析,未涉及商業(yè)用途,也未涉及個(gè)人隱私等受法律保護(hù)的信息。
2.2? Python技術(shù)及應(yīng)用
Python起源于20世紀(jì)90年代,其創(chuàng)始人為荷蘭人吉多·范羅蘇姆,開(kāi)始僅是為繼承ABC語(yǔ)言而開(kāi)發(fā)的一種新的腳本程序,但時(shí)至今日,其以“優(yōu)雅”“明確”“簡(jiǎn)單”的優(yōu)點(diǎn)在業(yè)界廣受歡迎,已經(jīng)成為最受歡迎的程序設(shè)計(jì)語(yǔ)言之一,在IEEE Spectrum 2019-2021編程語(yǔ)言排行榜上,Python連續(xù)3年蟬聯(lián)榜首。Python在網(wǎng)絡(luò)爬蟲(chóng)方面功能十分強(qiáng)大,它能夠模擬瀏覽器登錄、有針對(duì)性地爬取網(wǎng)頁(yè)數(shù)據(jù),特別是Python擁有形形色色的爬蟲(chóng)相關(guān)庫(kù),為網(wǎng)頁(yè)文檔的爬取和處理提供強(qiáng)有力的支持。
在本案例中,硬件環(huán)境搭配了高性能的個(gè)人計(jì)算機(jī),配置標(biāo)準(zhǔn)為:Win 10系統(tǒng)(64位,基于x64的處理器操作系統(tǒng)),8 GB運(yùn)行內(nèi)存,Intel Core i7處理器,500 GB硬盤(pán)。Python環(huán)境配置選擇安裝Python集成軟件Anaconda 3,使用pip install requests(其他re、lxml、pandas、selenium、jieba等庫(kù)的安裝方法相同)命令行安裝第三方爬蟲(chóng)庫(kù)。在爬蟲(chóng)前需要先分析貼吧URL組成,安徽審計(jì)職業(yè)學(xué)院百度貼吧URL為“https://tieba.baidu.com/f?kw=安徽審計(jì)學(xué)院&ie=utf-8&pn=0”,其中“https://tieba.baidu.com/f?”是每一頁(yè)的URL固定的開(kāi)頭,“kw=安徽審計(jì)學(xué)院”為關(guān)鍵字貼吧名稱,“ie=utf-8”表示瀏覽器編碼,最后pn=0代表頁(yè)數(shù),pn=0是第1頁(yè),pn=50是第2頁(yè),pn=100是第3頁(yè),以此類推。分析出URL的組成規(guī)律,能夠通過(guò)遍歷的方法爬取貼吧每一頁(yè)的內(nèi)容。
在向貼吧URL發(fā)送HTTP請(qǐng)求時(shí),需要模擬瀏覽器進(jìn)行訪問(wèn),可以采取發(fā)送模擬User-Agent來(lái)通過(guò)檢驗(yàn),設(shè)置請(qǐng)求頭代碼如下:
header={‘User-Agent:‘Mozilla/5.0Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36}
成功發(fā)生請(qǐng)求后,會(huì)獲取響應(yīng),返回網(wǎng)頁(yè)源代碼,由于源網(wǎng)頁(yè)編碼方式為utf-8,與程序處理的編碼一致,正常不會(huì)出現(xiàn)亂碼,如果返回內(nèi)容出現(xiàn)亂碼,需要設(shè)置指定的utf-8編碼。通過(guò)xpath、BeautifulSoup對(duì)響應(yīng)的網(wǎng)頁(yè)內(nèi)容進(jìn)行解析網(wǎng)頁(yè),提取出貼吧標(biāo)題、內(nèi)容、作者名稱等信息;利用pandas庫(kù)的DataFrame功能進(jìn)行數(shù)據(jù)轉(zhuǎn)換;Selenium庫(kù)模擬瀏覽器操作實(shí)現(xiàn)翻頁(yè),數(shù)據(jù)存儲(chǔ)利用xlrd庫(kù)與xlwt庫(kù)實(shí)現(xiàn)。主要流程如圖2所示。
流程中各個(gè)功能通過(guò)自定義函數(shù)進(jìn)行封裝,最后調(diào)用各函數(shù)實(shí)現(xiàn)貼吧數(shù)據(jù)的爬取。Python在爬取網(wǎng)頁(yè)數(shù)據(jù)方面簡(jiǎn)單輕巧,在數(shù)據(jù)的處理與可視化分析上也游刃有余,貼吧關(guān)鍵信息分析可以采取分詞、統(tǒng)計(jì)詞頻、生成詞云圖方法,主要利用導(dǎo)入的jieba分詞庫(kù)、wordclound詞云庫(kù)、matplotlib繪圖庫(kù)等第三方庫(kù)功能實(shí)現(xiàn)。
3? 校園百度貼吧輿情數(shù)據(jù)分析
通過(guò)對(duì)2021年12月17日至2022年3月17日時(shí)間段貼吧“看貼”欄目數(shù)據(jù)進(jìn)行爬取,數(shù)據(jù)存儲(chǔ)為文件名為data.xlsx的Excel文件,部分?jǐn)?shù)據(jù)如圖3所示。
通過(guò)對(duì)“標(biāo)題”列數(shù)據(jù)、“內(nèi)容”列數(shù)據(jù)分別做詞頻統(tǒng)計(jì),分別對(duì)其文本進(jìn)行分詞,生成可視化詞云圖。以“標(biāo)題”列為例,使用pandas讀取項(xiàng)目根目錄下源數(shù)據(jù),再用jieba庫(kù)對(duì)“標(biāo)題”列數(shù)據(jù)進(jìn)行分詞。由于文本數(shù)據(jù)中可能存在一類沒(méi)有實(shí)際意義的詞,比如組詞“的”,連詞“以及”,副詞“甚至”,語(yǔ)氣詞“吧”等被稱為“停用詞”的無(wú)用詞,在做分詞處理時(shí)需要將其過(guò)濾掉,因此分詞前需要做去除“停用詞”操作?!巴S迷~”的去除是一個(gè)不斷修正的過(guò)程,如果一些無(wú)用詞未在“停用詞”詞典(根據(jù)哈工大停用詞表、百度停用詞表等目前常用的中文停用詞表綜合整理得到stoplist.txt)里,需要累加進(jìn)去。分詞操作代碼具體如下:
import pandas as pd
import re
import jieba
data = pd.read_excel('./data.xlsx')
data_cut1 = data['標(biāo)題'].apply(jieba.lcut)
with open('./stoplist.txt','r',encoding = 'utf8') as f:
stop = f.read()
stop = stop.split()
stop = [',',' ']+ stop # 用于多余停用詞的刪除,如空格,逗號(hào)
data_1 = data_cut1.apply(lambda x:[i for i in x if i not in stop])
去除停用詞后,對(duì)分詞的結(jié)果做詞頻統(tǒng)計(jì),代碼具體如下:
from tkinter import _flatten
num1 = pd.Series(_flatten(list(data_1))).value_counts()
詞云圖生成代碼具體如下:
from wordcloud import WordCloud
import matplotlib.pyplot as plt
mywc=WordCloud(font_path='C:/Windows/Fonts/STKAITI.TTF',background_color='white')
mywc2 = mywc.fit_words(num1)
plt.imshow(mywc2)
plt.axis('off')
plt.show
生成的詞云圖如圖4所示。
同理,參照“標(biāo)題”列數(shù)據(jù)代碼,操作生成“內(nèi)容”列數(shù)據(jù)詞頻統(tǒng)計(jì)表和詞云圖,分別如表2和圖5所示。
詞云圖過(guò)濾掉大量的文本信息,對(duì)文本中出現(xiàn)頻率較高的關(guān)鍵詞突出顯示,不同的關(guān)鍵詞采用不同的顏色和字體大小,通過(guò)形成關(guān)鍵詞渲染,使瀏覽者只要一眼掃過(guò)就可以領(lǐng)略文本的主旨[4]。由詞頻統(tǒng)計(jì)表和詞云圖可以看出,在監(jiān)測(cè)周期內(nèi),“審計(jì)”“安徽”“學(xué)?!薄皩W(xué)院”等詞提及頻率最高,是論壇發(fā)帖者和參與者關(guān)注度較高的話題,這些話題均與學(xué)校息息相關(guān);“專業(yè)”“專升本”“工作”“兼職”等詞提及頻率較高,均與學(xué)習(xí)、升學(xué)、求職等日常話題相關(guān)。學(xué)校學(xué)工管理者可以據(jù)此了解到學(xué)生日常關(guān)心的話題是什么,例如,從“兼職”“工作”詞頻反饋學(xué)生關(guān)注就業(yè)求職方面的話題,“專升本”詞頻可能反饋出學(xué)生對(duì)專升本升學(xué)有過(guò)多討論,“交流”“微信”“學(xué)姐”“學(xué)長(zhǎng)”詞頻反饋學(xué)生有關(guān)交友需求方面的信息等。這些都從側(cè)面反映了學(xué)生的輿論傾向。高校校園網(wǎng)絡(luò)輿情是一種議論,但并不是所有的議論都具有網(wǎng)絡(luò)輿情的“規(guī)格”的,議論借助網(wǎng)絡(luò)虛擬空間[5]。只有這種議論達(dá)到一定規(guī)模,并且產(chǎn)生一定影響,才能形成校園網(wǎng)絡(luò)輿情熱點(diǎn)事件。
4? 結(jié)? 論
總體來(lái)看,在監(jiān)測(cè)周期內(nèi),“安徽審計(jì)學(xué)院百度貼吧”網(wǎng)絡(luò)輿情比較穩(wěn)定,輿情信息貼切學(xué)生生活,學(xué)生關(guān)注的多半是校園、學(xué)習(xí)、升學(xué)、求職等日常校園話題,未出現(xiàn)大規(guī)模傳播的負(fù)面網(wǎng)絡(luò)輿情事件。一方面可能是學(xué)校網(wǎng)絡(luò)輿情監(jiān)控比較及時(shí),能夠及時(shí)監(jiān)測(cè)到貼吧里的不良輿論導(dǎo)向信息,將處于萌芽狀態(tài)的矛盾及時(shí)化解掉,保障了校園網(wǎng)絡(luò)穩(wěn)定;另一方面可能是學(xué)校扎實(shí)推進(jìn)“三全育人”工作帶來(lái)的效果延伸,近年來(lái),安徽審計(jì)職業(yè)學(xué)院不斷加強(qiáng)在校生網(wǎng)絡(luò)安全教育、大學(xué)生心理健康教育,課程思政教育,有效實(shí)現(xiàn)課程思政與學(xué)科教學(xué)同向同行,這些舉措無(wú)形中提升了在校學(xué)生的思想道德意識(shí),進(jìn)而規(guī)范了網(wǎng)絡(luò)行為。
只有通過(guò)對(duì)大規(guī)模的樣本實(shí)驗(yàn)數(shù)據(jù)分析研究,才有可能客觀反映校園網(wǎng)絡(luò)輿情的實(shí)際情況。“安徽審計(jì)職業(yè)學(xué)院百度貼吧”數(shù)據(jù)并不能代表安徽審計(jì)職業(yè)學(xué)院網(wǎng)絡(luò)輿情的全部,更不能概括為整個(gè)高校校園網(wǎng)絡(luò)輿情,本文的實(shí)驗(yàn)數(shù)據(jù)是監(jiān)測(cè)周期為3個(gè)月之內(nèi)的貼吧數(shù)據(jù),實(shí)驗(yàn)數(shù)據(jù)有限,只是簡(jiǎn)單探索了Python技術(shù)在高校校園百度貼吧數(shù)據(jù)分析中的簡(jiǎn)單應(yīng)用。今后,筆者將持續(xù)研究基于爬蟲(chóng)技術(shù)的校園百度貼吧輿情數(shù)據(jù)分析,關(guān)注爬蟲(chóng)技術(shù)在微博、微信公眾號(hào)、微信朋友圈等平臺(tái)的輿情分析應(yīng)用,結(jié)合大數(shù)據(jù)爬蟲(chóng)技術(shù),進(jìn)行大規(guī)模實(shí)驗(yàn)數(shù)據(jù)的爬取與分析研究,嘗試設(shè)計(jì)基于爬蟲(chóng)技術(shù)的校園網(wǎng)絡(luò)輿情系統(tǒng)。
參考文獻(xiàn):
[1] 席巖,張乃光,王磊,等.基于大數(shù)據(jù)的用戶畫(huà)像方法研究綜述 [J].廣播電視信息,2017(10):37-41.
[2] 羅晶.校園輿情分析中的意見(jiàn)挖掘技術(shù)研究 [D].南京:東南大學(xué),2015.
[3] 祝瑞,車敏.基于HTTP協(xié)議的服務(wù)器程序分析 [J].現(xiàn)代電子技術(shù),2012,35(4):117-119+122.
[4] 周毅,寧亮,王鷗,等.基于Python的網(wǎng)絡(luò)爬蟲(chóng)和反爬蟲(chóng)技術(shù)研究 [J].現(xiàn)代信息科技,2021,5(21):149-151.
[5] 胡江春.網(wǎng)絡(luò)輿情(2007年11月16日—12月15日) [J].中國(guó)改革,2008(1):7.
作者簡(jiǎn)介:丁然(1985.05—),男,漢族,安徽舒城人,講師,碩士研究生,研究方向:計(jì)算機(jī)應(yīng)用、大數(shù)據(jù)技術(shù)。
收稿日期:2022-10-26
基金項(xiàng)目:安徽審計(jì)職業(yè)學(xué)院2020年度院級(jí)自然重點(diǎn)科研項(xiàng)目(SJKJ2020A001)