【前端JS】網頁折線圖數據下載——EChart.js初涉

 


網站一

任務描述

  • 下載網頁折線圖中的數據
  • 注:這並非普通的靜態圖表,像是傳說中的Echart——基於JavaScript語言編寫的前端數據可視化插件。
網頁Echart圖表截圖

 

 

思考嘗試

  • 手動整理:對於我等懶人來說,能動手就不想動腦。第一反應當然是:手動移鼠標,人工整理數據。2000個數據點,預計7~8小時可搞完。然而事實是,整理20個數據點後,棄用此法。
  • GetData Graph Digitizer:從圖片提取數據點。然而,這…好像並不比手動整理簡單多少。
  • 爬蟲:python3 requests獲取某網站折線圖上數據,然而,第一步就卡住了。
  • 審查(檢查)元素:受《python3 requests獲取某網站折線圖上數據》啓發,查看網頁Networks狀態。誤打誤撞找到了控制圖表的代碼……至此,簡便方法get,後面就是處理過程中的一些小問題啦。

查看源代碼:查看的是別人服務器發送到瀏覽器的原封不動的代碼。

審查元素:看到的是在源代碼中找不到的代碼,是在瀏覽器執行js動態生成的。

 

簡單記錄

1.Google Chrome 打開網頁——檢查元素——Network XHR

左:Echart交互圖表;右:相應代碼
查看數據

 

2.經比對,發現代碼中顯示的WaterLevel數據與原圖表不一致。但!差值都是一定的,如,1987年二者差值爲1.08。進一步比對,我的猜想正確(讚自己的數據敏感性)。

3.Excel那一套:篩選、分列等。

 

簡單總結

  • 原來這就是傳說中的“前端開發”、“JavaScript”,沒有想象的難,interesting
  • 注:Echart圖表好像只支持Google Chrome,用其他瀏覽器打開原網頁,都無法顯示Echart圖表。這就是網站開發者的不對了,應當多加幾行代碼,使Echart圖表與其他瀏覽器也兼容。(我結合網上資料瞎猜的)
  • 不到萬不得已,絕不做機械的重複性勞動。大多機械勞動都有更好的替代方式,只是,我一時可能想不到,但一定要去想。當然,不是憑空想。這需要平時大量的積累+廣涉獵,多交流+多查資料。

 


網站二

  • 網站:MRC近實時xxx
  • 方法:同上,審查(檢查)元素+Excel處理
  • 注意:Excel處理主要包括篩選+分列

篩選:包含"{d"。分列:以"T"分列,將日期與時間xxx分隔;以,和:同時分列,將後幾列分隔,並刪除無用列。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章