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