摘 要 近年來,隨著“互聯(lián)網(wǎng)+”的全面推進(jìn),互聯(lián)網(wǎng)上的信息量不斷增加,如何高效、快速地獲取目標(biāo)信息,并對信息進(jìn)行有效分析成為亟待解決的問題。本研究設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于Python的聚焦網(wǎng)絡(luò)爬蟲系統(tǒng),以體育場館用戶在線評論為例,對評論信息進(jìn)行獲取,并對數(shù)據(jù)進(jìn)行可視化展示和內(nèi)容分析,結(jié)果表明,該系統(tǒng)能夠較好挖掘用戶對于場館評論中隱藏的信息。
關(guān)鍵詞 Python;聚焦網(wǎng)絡(luò)爬蟲;在線評論;內(nèi)容分析
引言
物聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)、5G等技術(shù)的不斷發(fā)展和成熟,有效促進(jìn)了互聯(lián)網(wǎng)數(shù)據(jù)的增長。互聯(lián)網(wǎng)數(shù)據(jù)通常具有海量、多維、多尺度等大數(shù)據(jù)的特點(diǎn),采取有效的方法和手段對互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行收集和分析,是理解互聯(lián)網(wǎng)數(shù)據(jù)的重要手段[1]。傳統(tǒng)的數(shù)據(jù)收集方法和技術(shù)(如調(diào)查問卷,采訪)會受到資金、地理位置和樣本量等一系列條件的影響和限制。網(wǎng)絡(luò)爬蟲依托于大數(shù)據(jù)框架和計(jì)算機(jī)技術(shù),可用于對海量互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行請求和提取,為深層次的內(nèi)容分析和挖掘奠定了基礎(chǔ)[2]。
本文基于Python標(biāo)準(zhǔn)庫、第三方庫和爬蟲技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)聚焦網(wǎng)絡(luò)爬蟲系統(tǒng),用于對指定網(wǎng)頁和內(nèi)容進(jìn)行爬取,并進(jìn)一步對爬取到的數(shù)據(jù)進(jìn)行存儲和內(nèi)容分析。在實(shí)例分析中,爬蟲系統(tǒng)第一步將抓取“趣運(yùn)動(dòng)”網(wǎng)站(http://www.quyundong.com/)中體育場館用戶評論信息的頁面,第二步對網(wǎng)頁進(jìn)行解析并過濾無關(guān)的內(nèi)容和數(shù)據(jù),第三步對抓取數(shù)據(jù)進(jìn)行存儲,第四步對體育場館用戶中差評信息進(jìn)行詞云圖展示和詞頻統(tǒng)計(jì),第五步對高頻詞匯和詞云圖進(jìn)行分析,挖掘造成中差評的主要原因,為場館改進(jìn)提供建議,同時(shí)為其他用戶提供決策依據(jù)。
1基于Python的聚焦網(wǎng)絡(luò)爬蟲系統(tǒng)設(shè)計(jì)
1.1 聚焦網(wǎng)絡(luò)爬蟲定義
通用網(wǎng)絡(luò)爬蟲通過統(tǒng)一資源定位符(Uniform Resource Locator,URL)搜索網(wǎng)頁,通過遍歷所有待抓取URL隊(duì)列,將網(wǎng)頁相關(guān)數(shù)據(jù)返回給用戶[3]。聚焦網(wǎng)絡(luò)爬蟲基于通用網(wǎng)絡(luò)爬蟲,專注于抓取滿足特定主題和特定屬性的網(wǎng)頁。該爬蟲策略性搜索、獲取、下載、維護(hù)與特定主題相關(guān)的網(wǎng)頁URL,所有其他無關(guān)的URL將通過程序代碼被過濾。通過采用聚焦網(wǎng)絡(luò)爬蟲,用戶無須通過網(wǎng)頁搜索引擎來獲取信息,這樣既節(jié)省了時(shí)間和精力,又提高了數(shù)據(jù)采集的可靠性、針對性和準(zhǔn)確性[4-6]。聚焦網(wǎng)絡(luò)爬蟲下載的“面向主題”的數(shù)據(jù),后續(xù)可通過采用有效的內(nèi)容分析和挖掘技術(shù),提取出數(shù)據(jù)中隱藏的有價(jià)值信息。
1.2 聚焦網(wǎng)絡(luò)爬蟲系統(tǒng)工作流程
該聚焦網(wǎng)絡(luò)爬蟲系統(tǒng)工作流程分為下列5部分,如圖1所示。
(1)URL隊(duì)列:聚焦網(wǎng)絡(luò)爬蟲系統(tǒng)基于指定一個(gè)或幾個(gè)網(wǎng)頁網(wǎng)址,把這些網(wǎng)址作為URL種子,將URL種子放入U(xiǎn)RL隊(duì)列中等待爬取。
(2)網(wǎng)頁獲?。焊鶕?jù)指定URL,按照一定的規(guī)則對網(wǎng)頁進(jìn)行遍歷,發(fā)送請求并執(zhí)行相應(yīng)爬取。
(3)網(wǎng)頁處理:對網(wǎng)頁信息進(jìn)行解析和處理,提取出與研究主題相關(guān)的網(wǎng)頁內(nèi)容部分,過濾掉其他無關(guān)數(shù)據(jù)和內(nèi)容。
(4)數(shù)據(jù)存儲:對進(jìn)行網(wǎng)頁處理后,與研究主題相關(guān)的數(shù)據(jù)進(jìn)行存儲,本研究中將其存儲為Excel格式。
(5)可視化和內(nèi)容分析:對存儲數(shù)據(jù)進(jìn)行可視化以及內(nèi)容分析,包括詞云可視化分析、詞頻統(tǒng)計(jì)等方法。
2數(shù)據(jù)爬取與存儲具體實(shí)現(xiàn)
本章借助Python聚焦網(wǎng)絡(luò)爬蟲系統(tǒng),以爬取 “趣運(yùn)動(dòng)”網(wǎng)站體育場館用戶在線評論為例,進(jìn)行數(shù)據(jù)爬取與存儲的具體實(shí)現(xiàn),分為以下3步。
(1)網(wǎng)頁抓取。趣運(yùn)動(dòng)網(wǎng)站采用的是異步加載Ajax技術(shù),通過分析趣運(yùn)動(dòng)網(wǎng)站結(jié)構(gòu)和網(wǎng)址構(gòu)造,得到獲取用戶評論的URL請求地址為http://www.quyundong.com/venues/jsonComments?random=xxxx&page=****&business_id=####,該請求由3個(gè)網(wǎng)頁參數(shù)組成:xxxx對應(yīng)的是隨網(wǎng)頁請求生成的隨機(jī)數(shù)(random)、****對應(yīng)的是在線評論頁數(shù)(page)、####對應(yīng)的是場館編號(business_id)。確定3個(gè)參數(shù)后,采用Python中的第三方requests庫對指定場館用戶在線評論URL請求進(jìn)行抓取。
(2)網(wǎng)頁處理。趣運(yùn)動(dòng)網(wǎng)站用戶評論信息以JSON格式進(jìn)行存儲,評論信息的JSON結(jié)構(gòu)如圖2所示,故調(diào)用Python中的JSON庫對評論信息進(jìn)行解析。由于評論信息以鍵值對的形式存在,在遍歷每位已注冊用戶評論信息時(shí),僅需篩選出評論時(shí)間(create_time)、評論內(nèi)容(content)、評論等級(comment_rank),其他的信息:評論ID(comment_id)、場館ID(business_id)、用戶ID(user_id)、用戶姓名(user_name)、用戶頭像(avatar)、用戶上傳圖片列表(image_list),由于與該研究主題關(guān)聯(lián)不大,將被過濾掉,不參與數(shù)據(jù)爬取。最終將所有符合要求的評論信息存入一個(gè)結(jié)果集中。
(3)數(shù)據(jù)存儲。調(diào)用Python中的Workbook庫,將第二步得到的結(jié)果集寫入Excel文件,對體育場館用戶評論數(shù)據(jù)進(jìn)行存儲。最終獲取到用戶有效在線評論數(shù)據(jù)18023條,從這些數(shù)據(jù)中篩選出評論為3分及以下(comment_rank<=3,滿分5分)的中差評共768條,作為可視化和內(nèi)容分析的對象。
3可視化與內(nèi)容分析具體實(shí)現(xiàn)
在聚焦網(wǎng)絡(luò)爬蟲系統(tǒng)架構(gòu)中,爬取完所需數(shù)據(jù)之后,需對數(shù)據(jù)進(jìn)行可視化和內(nèi)容分析,旨在挖掘出數(shù)據(jù)中隱藏的有價(jià)值信息。
(1)數(shù)據(jù)可視化。讀取所有用戶在線評論文本,導(dǎo)入Python中的jieba中文分詞庫,獲取在線評論的中文分詞列表。接著使用wordcloud詞云庫,設(shè)置stopwords屏蔽詞參數(shù),對數(shù)據(jù)進(jìn)行清洗,同時(shí)設(shè)置詞云圖的形狀、背景顏色、高度、寬度和字體,結(jié)果可生成相應(yīng)詞云圖,對場館用戶評論數(shù)據(jù)中出現(xiàn)頻率較高的“關(guān)鍵詞”予以可視化的展示(如圖3所示)。接著調(diào)用Sklearn庫中的CountVectorizer函數(shù),分別提取詞匯和計(jì)算詞頻,對評論數(shù)據(jù)中的詞匯進(jìn)行詞頻統(tǒng)計(jì),并將結(jié)果存儲在CSV文件中。
(2)內(nèi)容分析。對篩選出的評論為3分及以下的中差評數(shù)據(jù)進(jìn)行統(tǒng)計(jì),其中評分為3分的用戶評論共389條,占比50.65%;評分為2分的106條,占比13.80%;評分為1分的260條,占比33.86%;評分為0分的13條,占比1. 69%。
結(jié)合詞云圖和詞頻分析結(jié)果,發(fā)現(xiàn)出現(xiàn)次數(shù)最多的前10個(gè)高頻詞匯分別是:場館(286次)、不好(130次)、燈光(84次)、服務(wù)態(tài)度(70次)、沒有(68次)、價(jià)格(65次)、地板(54次)、空調(diào)(54次)、位置(49次)、態(tài)度(38次)。由此可以得出以下結(jié)論,用戶對于使用體育場館的需求主要包括:場館的燈光、收費(fèi)價(jià)格、地板、空調(diào)、位置和工作人員的服務(wù)態(tài)度。該結(jié)果基于聚焦網(wǎng)絡(luò)爬蟲系統(tǒng)數(shù)據(jù)收集、存儲、分析整個(gè)流程,反映了趣運(yùn)動(dòng)網(wǎng)站用戶在線評論的真實(shí)情況,挖掘了用戶在參與體育場館設(shè)施健身過程中的具體需求。
4結(jié)束語
本文基于Python構(gòu)建了聚焦網(wǎng)絡(luò)爬蟲系統(tǒng),實(shí)現(xiàn)了對趣運(yùn)動(dòng)網(wǎng)站體育場館用戶在線評論信息的爬取、存儲和內(nèi)容分析,分析結(jié)果表明:聚焦網(wǎng)絡(luò)爬蟲專注于特定主題和內(nèi)容的收集,提高了信息收集效率,節(jié)省了大量的時(shí)間。同時(shí),對用戶評論數(shù)據(jù)的存儲便于進(jìn)一步的數(shù)據(jù)管理和分析,也能對有效數(shù)據(jù)進(jìn)行保存。再者,對存儲數(shù)據(jù)的可視化和內(nèi)容分析結(jié)果,包括詞云圖可視化和詞頻統(tǒng)計(jì),可進(jìn)一步為場館硬件和軟件設(shè)施改進(jìn)提供決策,也可為用戶選擇體育場館提供參考。上述結(jié)論驗(yàn)證了本文提出的聚焦網(wǎng)絡(luò)爬蟲系統(tǒng)的有效性和實(shí)用性,下一步的工作是繼續(xù)優(yōu)化聚焦網(wǎng)絡(luò)爬蟲系統(tǒng),結(jié)合多線程與并發(fā)等技術(shù),同時(shí)加入更多的文本分析算法,對整個(gè)系統(tǒng)性能進(jìn)行優(yōu)化,使其爬取效率更高、功能更加完善。
參考文獻(xiàn)
[1] 杜曉旭,賈小云.基于Python的新浪微博爬蟲分析[J].軟件,2019, 40(4):182-185.
[2] 劉暉,石倩.基于網(wǎng)絡(luò)爬蟲的新聞網(wǎng)站自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2019(13):18-19.
[3] 陸樹芬.基于Python對網(wǎng)絡(luò)爬蟲系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2019(2):26-27,51.
[4] 郭向向,鄭嘉慧,苗學(xué)芹.基于Python聚焦型網(wǎng)絡(luò)爬蟲的影評獲取技術(shù)[J].時(shí)代金融,2019(11):71-72.
[5] 高宇,楊小兵.基于聚焦型網(wǎng)絡(luò)爬蟲的影評獲取技術(shù)[J].中國計(jì)量大學(xué)學(xué)報(bào),2018,29(3):299-303.
[6] 楊國志,江業(yè)峰.基于python的聚焦網(wǎng)絡(luò)爬蟲數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].科學(xué)技術(shù)創(chuàng)新,2018(27):73-74.
作者簡介
王煜煒(1990-),男,湖北武漢人;畢業(yè)院校:武漢大學(xué),專業(yè):軟件工程,學(xué)歷:博士研究生,現(xiàn)就職單位:江漢大學(xué),研究方向:人工智能。