基于大数据技术的房价数据采集及可视化分析应用
作者:石慧 陈培辉
来源:《计算机时代》2021年第08期
        摘 要: 在“房住不炒”定位下,住房選购成了广大市民比较关心的问题。把大数据分析技术引入到房价分析,利用Scrapy爬虫框架对广州房价线上数据的爬取,经清洗和可视化,把影响房价的要素以可视化的形式予以呈现。与传统方法相比,大数据分析技术在数据采集及可视化分析应用方面优势明显。
        关键词: 大数据分析; 可视化; 爬虫框架; 房价数据
        中图分类号:TP399 文献标识码:A 文章编号:1006-8228(2021)08-71-05
        Housing price data collection and visualized analysis with big data technology
        Shi Hui, Chen Peihui
        (Department of Information Engineering, Shanwei Vocational and Technical College, Shanwei, Guangdong 516600, China)
        Abstract: Under the positioning of "housing without speculation", the purchase of housing has become a concern of the general public. This article introduces the big data an
alysis technology into the housing price analysis, and the online data of Guangzhou housing price is crawled by using the Scrapy crawler framework. After cleaning and visualization of online data, the factors affecting housing price are presented in the form of visualization. Compared with traditional methods, big data analysis technology has obvious advantages in applications of data collection and visualized analysis.
        Key words: big data analysis; visualization; crawler framework; housing price data
        0 引言
        网络数据采集是通过网络爬虫[1]等技术从互联网采集数据的过程。网络数据采集和数据可视化具有广泛的应用范围,涉及挖掘数据可视化、文本数据可视化、交通可视化、生物医学可视化、网络数据可视化等领域。闫志国[2]等通过爬取电商药品数据并对数据可视化处理,为用户在网上买药提供参考。曹睿娟[3]等提出基于大数据的城市内涝网络舆情监测及演化机理,为内涝事件舆情应对提供决策支持。于凤芹[4]等借助动态面板模型和多重中介效应模型,研究金融科技与商业银行盈利能力的关系及中介传导机制。饶加旺[5]等构建了智慧城市文本大数据与自动分词模型,指出当前智慧城市建设中的问题。
        有效地利用大数据技术,深入挖掘互联网中的数据,可以为我们提供许多有趣的信息[6],也能为消费者和商家等目标用户提供一定的参考意见和决策支持。
        1 基于大数据技术的房价分析方法
        本文主要利用网络爬虫技术采集58同城网的广州房价线上数据,并挖掘和分析网络数据中的信息。首先利用Xpath Helper获取返回DOM树形结构的根节点,再结合Python的Scrapy框架对广州房价的线上网站的数据进行爬取,之后调用Sqlalchemy引擎对所采集的数据进行存取,接着调用Pandas库和Numpy库中的函数,对数据进行清洗,最后结合Matplotlib库、Seaborn库以及Pyecharts库中的函数对清洗后的数据进行直观的可视化展示。
        1.1 Scrapy框架
        Scrapy爬虫框架是基于Python开发的一个快速、高层次的屏幕抓取和Web抓取框架,Scrapy框架主要由调度器(Scheduler)、下载器(Downloader)、爬虫(Spider)和实体管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)五大组件构成[7-8]。调度器抓取网页网址或链接的优先队列,可以去除重复的网址,用户根据自己的需求定制调度器。建立在Tw
isted高效异步模型上的下载器用于从网络上高速下载资源。用户通过定制正则表达式等语法定制自己的爬虫,从特定的网页中采集实体信息,也可以提取链接让Scrapy继续抓取下一个页面。实体管道用于处理爬虫提取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息[9-10]。
        2 房价数据采集和预处理
        2.1 房价数据采集
scrapy分布式爬虫
        前期调研阶段,通过分析国内主流房产网站和热点大城市的网络搜索热度和权重,结合区域特点,选择58同城网的广州房价数据为数据来源[11],具体信息包括户型、面积、朝向、楼层、城区、小区名、总价、单价等[12]。
        房价数据采集过程:查房价具体内容、检验爬取内容、查询Headers信息、数据存储调用等。①房价具体信息的查:进入网站,通过页面的Html源码查看特定信息标签,根据标签信息爬取特定的数据。数据爬取过程中需要理清标签之间的嵌套关系,从首页面到二级子页面,依次往下涉及的标签种类有整体框架标签、下级标签、具体内容的标签等。②利用
XPath Helper插件获取爬取内容的标签层级,检验所采集的数据是否出现错误。③HTTP请求头Headers信息的查询:考虑到很多网站设置了反爬虫机制,在合法合规前提下通过在Headers信息中添加代理IP以达到反爬的目的。④利用Sqlalchemy引擎实现数据的存储和调用:数据库中为了防止字段乱码,要把表中的字段改成英文的形式,利用字典的形式更换成英文字段,然后把表插入数据库中。
        2.2 房价数据清洗
        房价数据清洗阶段主要操作包括:缺失值检测、数据去重、数据格式统一、过滤模糊数据等步骤。
        由于爬取的信息没有缺失值,所以只进行了全面的检测,分别查看了含缺失值的列。数据去重阶段通过判断重复数据,并统计重复数据的数目,查看重复的数据。为了检验重复的数据是否准确,可以随机选择一个标题,用query()函数进行选择行操作,使用count()方法,判断去除重复项的数据表剩下的数据量,通过调用pandas库的drop_duplicates()函数执行对数据的去重操作。做重复数据的去除时可以重新使用一张数据表,再次进行去重操作。