数据可视化:基于网络爬虫制作可视化图表

更多腾讯海量技术文章,请关注云加社区:https://cloud.tencent.com/developer/column

作者:RiboseYim

摘要

基于网络爬虫的可视化图表:golang,goquery

案例:最近十年全国彩票销售变化情况

案例:中国科学院院士分布

数据可视化技术方案:基于 SVG (D3、Raphael)、基于 Canvas(Echarts)

我们身处大数据时代,几乎在所有工作例如商业技术、金融、科研教育等行业,以及日常生活中都可能需要涉及数据分析活动。横向来看数据分析的知识体系贯穿数据获取、数据存储、数据分析、数据挖掘、数据可视化等各大部分;按数据来源分,即可以是自己收集的数据,也可以采购数据或者基于公开数据集。

基于公开数据进行分析的话,必须提到的就是网络爬虫(web crawler),也被称作网络蜘蛛(spider)、自动索引程序(automatic indexer),搜索引擎(Google,百度等)就是大众日常生活中接触到的最典型、最强大的爬虫。

公开数据包括政府(统计局、央行、银监会、证监会等)、企业、社会组织和互联网上的个人发布信息等。在浩如烟海的互联网内容中,有价值信息犹如‘待字闺中’深藏的美女,等待有心人去挖掘。例如:

案例:最近十年全国彩票销售变化情况 在线演示

案例:中国科学院院士分布(出生地与籍贯)在线演示

案例:美国航空入境旅客(出发地)变化情况 在线演示

中科院院士分布情况|201801

全国彩票销售情况

为了实现上述图表,相关技术方案的要点如下:

开发语言: 基于 Golang 实现爬虫基本功能,主要考虑 Go 语言 自身对于网络方面的强大支持,语言级 Goroutines 提供并发高性能支持。

HTML选择器: goquery jQuery-style HTML manipulation in Go

数据存储: csv,PostgreSQL 等

数据可视化:ECharts

基于网络爬虫制作可视化图表

案例

数据来源页面:

专栏:彩票管理

2017年11月份全国彩票销售情况

全体院士名单

院士个人介绍

数据来源-专题

数据来源-内容

数据来源-翻页

数据来源页面-源代码

2017年11月份全国彩票销售情况,385.55

2017年10月份全国彩票销售情况,376.53

2017年9月份全国彩票销售情况,369.28

2017年8月份全国彩票销售情况,350.67

2017年7月份全国彩票销售情况,337.55

2017年6月份全国彩票销售情况,338.42

可视化图表:以 ECharts 为例

常见的图表库,本文案例使用 ECharts 作为图表组件

HighCharts:JavaScript 编写,开源许可证允许个人用户和非商业用途。

Baidu ECharts:底层画图基于 Canvas, BSD 许可证协议。

Kartograph:构建交互式地图轻量级类库。

最佳实践

默认调色板(palette)

Navy — #001f3f Blue — #0074d9 Aqua — #7fdbff Teal — #39cccc Olive — #3d9970 Green — #2ecc40 Lime — #01ff70 Yellow — #ffdc00 Orange — #ff851b Red — #ff4136 Maroon — #85144b Fuchsia — #f012be Purple — #b10dc9 Black — #111111 Gray — #aaaaaa Silver — #dddddd White — #ffffff

优化图表JS生成模板 图表定型之后,可以通过模板固化配置,根据需要动态生成目标文件(html,js,svg等等),详见基于 Markdown 的 HTML 网页模板。

优化采集器 Goroutines "线程池" 例如:PostgreSQL Exception: Open too many files

优化数据存储 例如:常用的 GIS 坐标库

扩展阅读:开源工具与案例

golang-based library

golang.org/net/http

github.com/celrenheit/spider

goquery: jQuery-style HTML manipulation in Go

github.com/henrylee2cn/pholcus_lib

Pholcus is a distributed, high concurrency and powerful web crawler software

可视化图表案例

中国主要城市空气质量实况

中国经济十年时空漫游(2002-2011)

可视化图表技术方案

基于 SVG : D3、Raphael

基于 Canvas : Echarts

HighCharts国外开源产品,JavaScript 编写,自带主题、动态交互方便,目前公司新版业务视图、地图应用、交互式流量图等是基于这个库实现。 不足:缺少中文文档,开源许可证只允许个人用户和非商业用途,规模应用存在法律风险。

Baidu ECharts最早源于百度各种业务系统报表需求,底层画图基于 Canvas 。2013年开源,完全免费的BSD协议。 特点:拖拽重计算,第三方标准格式支持,中文社区支持 实例:http://echarts.baidu.com/doc/example.htmlGithub: https://github.com/ecomfe/echarts

KartographKartograph 是个构建交互式地图的简单、轻量级类库。它包含两个库,一个用Python写的,用于产生漂亮和压缩的SVG地图,另一个是js类库用于前端展示地图用。

lchart(go-based)

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180131A0M1NF00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区