我们平时在用Python爬取网页上的数据时,对爬取到到的数据做数据分析展现有很多种方式,比如可以通过echart图表接口、python提供的第三方库,甚至还可以用matlab工具来进行数据统计和图表可视化展现。
可无论是以上哪一种方式,都需要通过代码来调用Python爬好的数据来进行画图,图表样式属性设置等方面还是比较繁琐的。
同样的问题,有一次小编领导要求我做一份有关于南京房价的数据汇报,需要做到报表里面。数据是没有的,自然而然想到用Python爬,爬好后直接做数据图表粘贴到报表中。但后来发现方法太土,汇报时不好做动态的数据展现(影响小编炫技装逼)。于是乎就想办法,将爬取到的数据导入到报表或者BI系统里面,利用BI本身的一些分析功能,联动着其他数据做展现。于是就有了本篇“Python爬数据,FineBI画图”的文章。
关于FineBI
这是一个可视化的自助式BI工具,整个操作就是导数据/连数据库——处理数据(可视化ETL)选择图表——拖数据字段——可视化展现美化,操作简单上手快。小编只是用了其可视化的一隅功能,多数情况下,这个工具都是拿来做可视化报表,对接企业大数据平台,做企业数据运营分析用。
原理介绍
废话不多说,直接贴出操作。
因为想看看南京房价数据,但是网站上的很多数据都是以HTM5的形式进行呈现的,所以考虑通过Python来进行网页数据抓取和入库,数据分析方面通过FineBI工具直接连接数据库,分析和可视化呈现。
整体的思路:
数据层方面先通过Python抓取到WEB端的网页数据,之后对爬取到数据进行解析再而存储到MYSQL数据入库;
最后应用层的数据处理、数据计算统计、图表可视化呈现等工作全都交由FineBI工具来做。
操作步骤
1.引入相关python库包
首先新建python工程,引入本次爬取网页数据和写入MySQL数据库所需要的requests、pymysql、bs4这三个包:
2.获取网页数据
然后如下图所示,通过编写Python代码获取到某一个房产网页的南京售房平台的网页信息:
3.HTML标签解析
接着再对DIV样式下的HTML数据包进行逐一解析,获取到想要的房源名称、地址、小区、户型、面积、总价、单价、区域等数据:
其中对应网页的标签样式可以通过浏览器的F12开发选项进行快速获取,如下图所示的定位房源信息截图,我们只需要右键浏览器在所需要获取标签样式名称的地方点击检查元素即可(房源名称的标签即位house-title的title元素)。
4.MySQL数据回写
解析好数据之后,再将解析好的数据写入到MySQL数据库中:
循环遍历该平台在南京最近七天的网页售房信息数据,页面17页,共计条数据:
5.安装FineBI验证数据入库
通过FineBI