摘要:隨著網(wǎng)絡(luò)信息技術(shù)的飛速發(fā)展,住房公積金咨詢和回答已不再僅限于傳統(tǒng)的線下進行,更多的人選擇在安居客、58同城等房產(chǎn)交易網(wǎng)站提問討論。為進一步提高公積金中心的服務(wù)水平,通過編寫Python爬蟲代碼,獲取輿情信息并能通過統(tǒng)計得到輿情分析,并生成可視化圖表,發(fā)現(xiàn)公積金業(yè)務(wù)的熱點和難點,為住房公積金決策提供依據(jù),為《住房公積金管理條例》修訂提供依據(jù)。
關(guān)鍵詞:網(wǎng)絡(luò)爬蟲;Python;輿情分析;數(shù)據(jù)采集;可視化分析
0引言
當前,伴隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展與網(wǎng)絡(luò)民意表達的日漸主流化,網(wǎng)絡(luò)輿情已越來越成為中國社會傳遞社情民意的一支重要力量。本研究在對安居客中安康公積金網(wǎng)上問答網(wǎng)頁進行爬取的基礎(chǔ)上,結(jié)合Python文本分析,通過分析可以了解民眾所關(guān)心的安康公積金熱點話題,有效監(jiān)控輿情動態(tài)。為安康市住房公積金中心進一步提高服務(wù)質(zhì)量增加有力的幫助。
該方案,不但在獲取民意的真實性和廣泛性上有優(yōu)勢,而且在新冠疫情時期也是最經(jīng)濟,最快捷和方便的優(yōu)選方案。然而,一方面,爬取網(wǎng)站制定的反爬蟲策略限制用戶訪問頻率,數(shù)據(jù)獲取難度大;另一方面,問答語言具有碎片化、多樣性、凝練性等特點[1],增大了情感分析的難度。同時由于我國互聯(lián)網(wǎng)發(fā)展較晚,網(wǎng)絡(luò)輿情監(jiān)控方面的研究也較晚,且成果參差不齊[2]。以影響力較大的房產(chǎn)信息網(wǎng)站“安居客”為例,其公積金政策搜索功能有明顯缺陷,不能高效的搜索公積金熱點問題和解答,并且無法導(dǎo)出問答文本,不支持智能情感分析,用戶只能查看該關(guān)鍵詞,卻無法得知網(wǎng)友的情感動態(tài)。文章解決了以上兩個問題并針對現(xiàn)有輿情監(jiān)控平臺的缺陷進行了改進,從文本抓取、數(shù)據(jù)處理、情感分析、可視化展示四個方面出發(fā),設(shè)計了一個基于網(wǎng)絡(luò)爬蟲和文本處理的輿情分析系統(tǒng)。
1網(wǎng)絡(luò)爬蟲簡介
網(wǎng)絡(luò)爬蟲又稱為網(wǎng)絡(luò)蜘蛛,是一種按照一定的規(guī)則,自動抓取萬維網(wǎng)信息的程序或腳本[3],基本原理是模擬計算機對服務(wù)器發(fā)起Requests請求,然后接收服務(wù)器端返回的Response內(nèi)容對其進行解析,以提取所需信息。根據(jù)網(wǎng)絡(luò)爬蟲爬取的對象和范圍不同可將其分為通用網(wǎng)絡(luò)爬蟲和聚焦網(wǎng)絡(luò)爬蟲(即主題網(wǎng)絡(luò)爬蟲)[4],其中,通用網(wǎng)絡(luò)爬蟲爬取目標范圍廣,通常用于搜索引擎;而聚焦網(wǎng)絡(luò)爬蟲則是針對某個特定目標和主題進行爬取[5]。Python因其語言的簡潔性、易讀性以及可擴展性[6],在編寫網(wǎng)絡(luò)爬蟲時具有其他語言不可比擬的優(yōu)勢,其強大的第三方庫不僅極大節(jié)省了開發(fā)人員編寫修改代碼的時間,還支持數(shù)據(jù)清洗和可視化,為后期的數(shù)據(jù)整理和分析提供了便捷,因此,本文采取Python語言編寫爬蟲代碼,采用主題爬蟲的策略來實現(xiàn)輿情信息的批量獲取。
2架構(gòu)設(shè)計
本文程序包括四部分:數(shù)據(jù)抓取模塊,文本處理模塊,數(shù)據(jù)分析模塊和數(shù)據(jù)可視化模塊。
獲取相應(yīng)網(wǎng)站的信息首先需要手動翻頁,通過觀察列表頁的URL,找到URL的構(gòu)成規(guī)律;然后通過循環(huán)語句,依次將URL取出;最后抓取URL頁面相應(yīng)的數(shù)據(jù)并存儲在本地進行數(shù)據(jù)清洗及分析。本文以安居客網(wǎng)站為例,通過編寫爬蟲程序抓取“安康”、“公積金”相關(guān)的問答信息,獲取的信息包括提出的問題、最好答案、回答次數(shù)、答案關(guān)鍵字、發(fā)布日期等,并將抓取的就業(yè)信息保存在CSV文本中,以便后期進行數(shù)據(jù)處理和可視化分析。
2.1分析網(wǎng)頁結(jié)構(gòu)
使用谷歌瀏覽器進入安居客網(wǎng)站,在問答選項頁中輸入“安康公積金”關(guān)鍵字搜索信息,通過查看源代碼發(fā)現(xiàn)網(wǎng)頁元素所對應(yīng)標簽。仔細分析這個網(wǎng)頁的數(shù)據(jù),我們需要五個數(shù)據(jù),問題,最優(yōu)回答,回答數(shù)量,問題關(guān)鍵字,問題發(fā)布時間。
2.2獲取問答信息數(shù)據(jù)
由于數(shù)據(jù)量不大,本程序使用Python中的requests庫爬取網(wǎng)頁中的留言,使用Xpath的方式進行網(wǎng)頁解析,最后將數(shù)據(jù)存放在CSV文本中。
一是導(dǎo)入響應(yīng)庫文件,爬蟲的基本框架是獲取HTML頁面信息,解析頁面信息,保存結(jié)果,requests模塊是用于第一步獲取HTML頁面信息。parsel模塊其作用和功能等價于css選擇器,xpath和re的集合版。
import csv ? # 導(dǎo)入所需的庫
import requests
import parsel
二是根據(jù)網(wǎng)頁的地址規(guī)律,構(gòu)建所有要下載網(wǎng)頁的網(wǎng)址,通過requests向安居客網(wǎng)頁發(fā)送http請求,獲取該頁面的源碼,獲取響應(yīng)數(shù)據(jù)。
for page in range(1,10):
url=f'https://ankang.anjuke.com/ask/SE_%E5%AE%89%E5%BA%B7%E5%85%AC%E7%A7%AF%E9%87%91/p{page}/'}
# 設(shè)定 headers 字段
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
response=requests.get(url=url,headers=headers)
三是使用 Xpath 方式解析出列表項,使用 Xpath 方式解析出五個數(shù)據(jù),問題,最優(yōu)回答,回答數(shù)量,問題關(guān)鍵字,問題發(fā)布時間。
lis = selector.xpath("http://div[@class='comp-QaList']/ul/li") ? ? #所有l(wèi)i標簽
for li in lis:
ask_question = li.xpath('./h3/a/@title').get()
ask_answer = li.xpath('./p/text()').get()
ask_answer_num=li.xpath("./div[@class='msg-wrap']/a/span/text()").get()
ask_question_time=li.xpath("./div[@class='cell-footer']/span/text()").get()
四是使用爬取數(shù)據(jù)存入csv文件。導(dǎo)出的格式為CSV,選擇編碼方式為UTF-8再保存,打開文件后則顯示正常,如圖2展示了爬取的輿情信息。
3輿情信息可視化分析
根據(jù)前面整理好的數(shù)據(jù),利用Python的圖表功能信息進行可視化分析,主要涉及詞云和詞頻統(tǒng)計,語句的感情分析,問題關(guān)注度圖表。
首先,安康公積金問題關(guān)注度情況表,此網(wǎng)站沒有網(wǎng)頁瀏覽計數(shù)內(nèi)容,從問題的回答個數(shù)側(cè)面反映一下問題關(guān)注度,粗略的反映一下公積金的熱點問題。問題關(guān)注圖如圖3、圖4所示。
從安康公積金問題關(guān)注度情況表來看,公積金問題主要涉及外地公積金的繳存者,可以在安康貸款買房嗎?部分樓盤公積金貸款額度等。針對異地貸款問題,主要是安康在外地工作或務(wù)工的人員在外地繳存了住房公積金,以及部分外地公積金繳存者有意向想在安康宜居之地購房養(yǎng)老,希望在安康購房能夠享受到住房公積金貸款政策,按照當前的政策規(guī)定,僅在全省范圍內(nèi)實現(xiàn)了異地貸款,對外省還沒有開放。主要是全國公積金現(xiàn)行管理機構(gòu)不統(tǒng)一,數(shù)據(jù)不能共享,各地貸款需求旺盛資金嚴重不足等原因造成的,不能實現(xiàn)全國一盤棋。需要我們有的放矢的進行研究,解放思想,以民為本,創(chuàng)新工作,突破政策限制,盡快實現(xiàn)外地住房公積金繳存者在安康購房能夠享受住房公積金貸款的鳳愿。
為進一步分析熱點問題,將對爬取文本進行分詞和詞頻統(tǒng)計繪制詞云。對文本處理,保留提問和回答文本。然后使用Jieba庫進行分詞,去除一些無意義的詞語,統(tǒng)計出現(xiàn)頻率較高的詞語,這些詞就是廣大群眾關(guān)注的公積金熱點問題;最后,將這些高頻詞語繪制詞云,使得數(shù)據(jù)形象化。
再有,為進一步了解安康公積金的輿情,再對回答的問題進行文本情感分析,充分的了解各種問題的輿情情況。使用SnowNLP類庫實現(xiàn),主要可以進行中文分詞(算法是Character-Based Generative Model)、詞性標注(原理是TnT、3-gram 隱馬)、情感分析。如圖6,回答問題情感分析表
觀點正負性的程度,0-1,0為負,1為正,進一步了解了關(guān)于安康公積金的網(wǎng)絡(luò)輿情的情況,情感分析表均值為0.413480364,說明回答的情況并不是太積極和主動。
4結(jié)語
本文通過分析安居客問答網(wǎng)頁結(jié)構(gòu),利用Python語言及其強大的第三方庫編寫流程代碼,獲取相應(yīng)的安康公積金輿情信息,并結(jié)合可視化圖表及詞云圖了解安康公積金的熱點詞,主要網(wǎng)絡(luò)提問,為信息技術(shù)在政務(wù)服務(wù)方面做了一個有益的嘗試,不足之處在于數(shù)據(jù)量的采集比較單薄,分析的結(jié)果和具體的服務(wù)改進沒有良好的連接。
參考文獻:
[1]王雨煙.淺談微博語言的特征[J].新聞研究導(dǎo)刊,2019,10(22):87-89.
[2]唐勇.互聯(lián)網(wǎng)輿情監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京郵電大學(xué),2013.
[3]孫立偉,何國輝,吳禮發(fā).網(wǎng)絡(luò)爬蟲技術(shù)的研究[J].電腦知識與技術(shù),2010,06(015):4112-4115.
[4]張譽曜,陳媛媛.基于Python下的爬蟲綜述及應(yīng)用[J].中國新通信,2019(06):98.
[5]左薇,張熹,董紅娟,等.主題網(wǎng)絡(luò)爬蟲研究綜述[J].軟件導(dǎo)刊,2020,19(02):278-281.
[6]賈志先.Python程序設(shè)計考試系統(tǒng)的開發(fā)與應(yīng)用[J].自動化技術(shù)與應(yīng)用,2016,35(02):57-60.
作者簡介:周福明(1964—),男,陜西旬陽人,高級經(jīng)濟師。研究方向:住房公積金管理。