天天看點

客戶需要從芒果店長erp中同步訂單資料。訂單資料采用了json異步加載模式,直接通路訂單清單拿不到資料。​​于是通過浏覽

作者:一個哲學家

客戶需要從芒果店長erp中同步訂單資料。訂單資料采用了json異步加載模式,直接通路訂單清單拿不到資料。

​于是通過浏覽器開發者工具研究了一下,順利找到了api。這個api采用的是post協定,需要發送資料到伺服器。于是複制登陸後的cookies,并構造需要發送的資料,但是奇怪的是并沒有拿到資料。

​因為平時比較少用go語言寫爬蟲,趕緊用Python嘗試一下運用已有的資料能否拿到資料。Python就是好用,三兩下就拿到了資料。這證明是可以拿到資料的,go語言沒拿到,肯定是代碼有問題。又回到go語言代碼,修改了送出資料的方式,運作代碼,神奇的事情發生了!

​雖然資料拿到了,但是拿到的是json格式資料,需要轉化為對象資料,才容易提取需要的東西。我知道這需要用到go語言的序列化功能。go語言的序列化比較麻煩,得做一個結構體。而需要處理的這個資料太複雜了,裡面嵌套了切片,要構造一個結構體是非常痛苦的。這時候無比懷戀Python語言。

​最後采用interface{}的方式終于搞定了。雖然還是麻煩,但是總比構造一個複雜的結構體簡單多了。這次有進步,通過fmt.Sprintf()可以輕松的把interfaces{}類型資料變成字元串格式,簡直太舒服!

​好了,就記錄到這裡,繼續幹活!

客戶需要從芒果店長erp中同步訂單資料。訂單資料采用了json異步加載模式,直接通路訂單清單拿不到資料。​​于是通過浏覽
客戶需要從芒果店長erp中同步訂單資料。訂單資料采用了json異步加載模式,直接通路訂單清單拿不到資料。​​于是通過浏覽
客戶需要從芒果店長erp中同步訂單資料。訂單資料采用了json異步加載模式,直接通路訂單清單拿不到資料。​​于是通過浏覽

繼續閱讀