當前位置:
首頁 > 最新 > 數據可視化:基於網路爬蟲製作可視化圖表

數據可視化:基於網路爬蟲製作可視化圖表

更多騰訊海量技術文章,請關注云加社區: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)

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲加社區 的精彩文章:

揭秘深度學習的基本理論方法與訓練過程
SPA 大賽:win10 python3.5.X 下開啟 lightgbm 支持

TAG:雲加社區 |