網站一
任務描述
- 下載網頁折線圖中的數據
- 注:這並非普通的靜態圖表,像是傳說中的Echart——基於JavaScript語言編寫的前端數據可視化插件。
思考嘗試
- 手動整理:對於我等懶人來說,能動手就不想動腦。第一反應當然是:手動移鼠標,人工整理數據。2000個數據點,預計7~8小時可搞完。然而事實是,整理20個數據點後,棄用此法。
- GetData Graph Digitizer:從圖片提取數據點。然而,這…好像並不比手動整理簡單多少。
- 爬蟲:python3 requests獲取某網站折線圖上數據,然而,第一步就卡住了。
- 審查(檢查)元素:受《python3 requests獲取某網站折線圖上數據》啓發,查看網頁Networks狀態。誤打誤撞找到了控制圖表的代碼……至此,簡便方法get,後面就是處理過程中的一些小問題啦。
查看源代碼:查看的是別人服務器發送到瀏覽器的原封不動的代碼。
審查元素:看到的是在源代碼中找不到的代碼,是在瀏覽器執行js動態生成的。
簡單記錄
1.Google Chrome 打開網頁——檢查元素——Network XHR
2.經比對,發現代碼中顯示的WaterLevel數據與原圖表不一致。但!差值都是一定的,如,1987年二者差值爲1.08。進一步比對,我的猜想正確(讚自己的數據敏感性)。
3.Excel那一套:篩選、分列等。
簡單總結
- 原來這就是傳說中的“前端開發”、“JavaScript”,沒有想象的難,interesting
- 注:Echart圖表好像只支持Google Chrome,用其他瀏覽器打開原網頁,都無法顯示Echart圖表。這就是網站開發者的不對了,應當多加幾行代碼,使Echart圖表與其他瀏覽器也兼容。(我結合網上資料瞎猜的)
- 不到萬不得已,絕不做機械的重複性勞動。大多機械勞動都有更好的替代方式,只是,我一時可能想不到,但一定要去想。當然,不是憑空想。這需要平時大量的積累+廣涉獵,多交流+多查資料。
網站二
- 網站:MRC近實時xxx
- 方法:同上,審查(檢查)元素+Excel處理
- 注意:Excel處理主要包括篩選+分列
篩選:包含"{d"。分列:以"T"分列,將日期與時間xxx分隔;以,和:同時分列,將後幾列分隔,並刪除無用列。