基于Python的住房公积金舆情信息获取与分析
2021-10-13周福明
摘要:随着网络信息技术的飞速发展,住房公积金咨询和回答已不再仅限于传统的线下进行,更多的人选择在安居客、58同城等房产交易网站提问讨论。为进一步提高公积金中心的服务水平,通过编写Python爬虫代码,获取舆情信息并能通过统计得到舆情分析,并生成可视化图表,发现公积金业务的热点和难点,为住房公积金决策提供依据,为《住房公积金管理条例》修订提供依据。
关键词:网络爬虫;Python;舆情分析;数据采集;可视化分析
0引言
当前,伴随着互联网技术的迅猛发展与网络民意表达的日渐主流化,网络舆情已越来越成为中国社会传递社情民意的一支重要力量。本研究在对安居客中安康公积金网上问答网页进行爬取的基础上,结合Python文本分析,通过分析可以了解民众所关心的安康公積金热点话题,有效监控舆情动态。为安康市住房公积金中心进一步提高服务质量增加有力的帮助。
该方案,不但在获取民意的真实性和广泛性上有优势,而且在新冠疫情时期也是最经济,最快捷和方便的优选方案。然而,一方面,爬取网站制定的反爬虫策略限制用户访问频率,数据获取难度大;另一方面,问答语言具有碎片化、多样性、凝练性等特点[1],增大了情感分析的难度。同时由于我国互联网发展较晚,网络舆情监控方面的研究也较晚,且成果参差不齐[2]。以影响力较大的房产信息网站“安居客”为例,其公积金政策搜索功能有明显缺陷,不能高效的搜索公积金热点问题和解答,并且无法导出问答文本,不支持智能情感分析,用户只能查看该关键词,却无法得知网友的情感动态。文章解决了以上两个问题并针对现有舆情监控平台的缺陷进行了改进,从文本抓取、数据处理、情感分析、可视化展示四个方面出发,设计了一个基于网络爬虫和文本处理的舆情分析系统。
1网络爬虫简介
网络爬虫又称为网络蜘蛛,是一种按照一定的规则,自动抓取万维网信息的程序或脚本[3],基本原理是模拟计算机对服务器发起Requests请求,然后接收服务器端返回的Response内容对其进行解析,以提取所需信息。根据网络爬虫爬取的对象和范围不同可将其分为通用网络爬虫和聚焦网络爬虫(即主题网络爬虫)[4],其中,通用网络爬虫爬取目标范围广,通常用于搜索引擎;而聚焦网络爬虫则是针对某个特定目标和主题进行爬取[5]。Python因其语言的简洁性、易读性以及可扩展性[6],在编写网络爬虫时具有其他语言不可比拟的优势,其强大的第三方库不仅极大节省了开发人员编写修改代码的时间,还支持数据清洗和可视化,为后期的数据整理和分析提供了便捷,因此,本文采取Python语言编写爬虫代码,采用主题爬虫的策略来实现舆情信息的批量获取。
2架构设计
本文程序包括四部分:数据抓取模块,文本处理模块,数据分析模块和数据可视化模块。
获取相应网站的信息首先需要手动翻页,通过观察列表页的URL,找到URL的构成规律;然后通过循环语句,依次将URL取出;最后抓取URL页面相应的数据并存储在本地进行数据清洗及分析。本文以安居客网站为例,通过编写爬虫程序抓取“安康”、“公积金”相关的问答信息,获取的信息包括提出的问题、最好答案、回答次数、答案关键字、发布日期等,并将抓取的就业信息保存在CSV文本中,以便后期进行数据处理和可视化分析。
2.1分析网页结构
使用谷歌浏览器进入安居客网站,在问答选项页中输入“安康公积金”关键字搜索信息,通过查看源代码发现网页元素所对应标签。仔细分析这个网页的数据,我们需要五个数据,问题,最优回答,回答数量,问题关键字,问题发布时间。
2.2获取问答信息数据
由于数据量不大,本程序使用Python中的requests库爬取网页中的留言,使用Xpath的方式进行网页解析,最后将数据存放在CSV文本中。
一是导入响应库文件,爬虫的基本框架是获取HTML页面信息,解析页面信息,保存结果,requests模块是用于第一步获取HTML页面信息。parsel模块其作用和功能等价于css选择器,xpath和re的集合版。
import csv # 导入所需的库
import requests
import parsel
二是根据网页的地址规律,构建所有要下载网页的网址,通过requests向安居客网页发送http请求,获取该页面的源码,获取响应数据。
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}/'}
# 设定 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 方式解析出五个数据,问题,最优回答,回答数量,问题关键字,问题发布时间。
lis = selector.xpath("//div[@class='comp-QaList']/ul/li") #所有li标签
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()
四是使用爬取数据存入csv文件。导出的格式为CSV,选择编码方式为UTF-8再保存,打开文件后则显示正常,如图2展示了爬取的舆情信息。
3輿情信息可视化分析
根据前面整理好的数据,利用Python的图表功能信息进行可视化分析,主要涉及词云和词频统计,语句的感情分析,问题关注度图表。
首先,安康公积金问题关注度情况表,此网站没有网页浏览计数内容,从问题的回答个数侧面反映一下问题关注度,粗略的反映一下公积金的热点问题。问题关注图如图3、图4所示。
从安康公积金问题关注度情况表来看,公积金问题主要涉及外地公积金的缴存者,可以在安康贷款买房吗?部分楼盘公积金贷款额度等。针对异地贷款问题,主要是安康在外地工作或务工的人员在外地缴存了住房公积金,以及部分外地公积金缴存者有意向想在安康宜居之地购房养老,希望在安康购房能够享受到住房公积金贷款政策,按照当前的政策规定,仅在全省范围内实现了异地贷款,对外省还没有开放。主要是全国公积金现行管理机构不统一,数据不能共享,各地贷款需求旺盛资金严重不足等原因造成的,不能实现全国一盘棋。需要我们有的放矢的进行研究,解放思想,以民为本,创新工作,突破政策限制,尽快实现外地住房公积金缴存者在安康购房能够享受住房公积金贷款的凤愿。
为进一步分析热点问题,将对爬取文本进行分词和词频统计绘制词云。对文本处理,保留提问和回答文本。然后使用Jieba库进行分词,去除一些无意义的词语,统计出现频率较高的词语,这些词就是广大群众关注的公积金热点问题;最后,将这些高频词语绘制词云,使得数据形象化。
再有,为进一步了解安康公积金的舆情,再对回答的问题进行文本情感分析,充分的了解各种问题的舆情情况。使用SnowNLP类库实现,主要可以进行中文分词(算法是Character-Based Generative Model)、词性标注(原理是TnT、3-gram 隐马)、情感分析。如图6,回答问题情感分析表
观点正负性的程度,0-1,0为负,1为正,进一步了解了关于安康公积金的网络舆情的情况,情感分析表均值为0.413480364,说明回答的情况并不是太积极和主动。
4结语
本文通过分析安居客问答网页结构,利用Python语言及其强大的第三方库编写流程代码,获取相应的安康公积金舆情信息,并结合可视化图表及词云图了解安康公积金的热点词,主要网络提问,为信息技术在政务服务方面做了一个有益的尝试,不足之处在于数据量的采集比较单薄,分析的结果和具体的服务改进没有良好的连接。
参考文献:
[1]王雨烟.浅谈微博语言的特征[J].新闻研究导刊,2019,10(22):87-89.
[2]唐勇.互联网舆情监控系统的设计与实现[D].北京:北京邮电大学,2013.
[3]孙立伟,何国辉,吴礼发.网络爬虫技术的研究[J].电脑知识与技术,2010,06(015):4112-4115.
[4]张誉曜,陈媛媛.基于Python下的爬虫综述及应用[J].中国新通信,2019(06):98.
[5]左薇,张熹,董红娟,等.主题网络爬虫研究综述[J].软件导刊,2020,19(02):278-281.
[6]贾志先.Python程序设计考试系统的开发与应用[J].自动化技术与应用,2016,35(02):57-60.
作者简介:周福明(1964—),男,陕西旬阳人,高级经济师。研究方向:住房公积金管理。