淘宝买家订单导出
轉載自:https://www.jianshu.com/p/b10066e60b6c
最近想分析一下2018年10月第一次入了偉力的12428小車以后在模型上的消費,但是從2018年到今年很多的訂單。本想自己截圖一下然后計算的,但發現非常的麻煩。淘寶又沒有工具能夠導出訂單的工具。手工做的話還是放棄吧,還是研究下自動的方式。
使用selenium等方式還比較麻煩,試了下無法登陸,拖動驗證碼的時候就報錯了。打開API請求發現翻頁的API請求asyncBrought包含了訂單的詳細信息,非常的方便。
怎么攔截這些API請求呢?想用下Tempermonkey但似乎沒提供攔截的功能。還是用一個中間代理mitmproxy這個工具能夠滿足這樣的需求。
代碼很簡單,只需要把asyncBought攔截,然后把數據寫到一個json文件即可。json文件用當前的頁碼作為文件名,比較好處理。
運行mitmdump -s 執行這個腳本,遇到了Chrome的HTST的報錯。參考這里關閉這個功能:https://appuals.com/how-to-clear-or-disable-hsts-for-chrome-firefox-and-internet-explorer/
弄好了以后,只需要手工點擊“下一頁”數次即可抓到所有的數據:
拿到這些數據后,在寫一個腳本,將json讀出來,提取出有用的信息,放到csv里面即可。
import glob import json import csvwith open("order.csv", "w", encoding='utf-8', ) as order_csv:writer = csv.writer(order_csv,lineterminator="\n")for file in sorted(glob.glob("./out/*.json")):with open(file, "rt", encoding="utf-8") as f:j = json.load(f)for main_order in j['mainOrders']:if main_order['statusInfo']['text'] != '交易關閉':for sub_order in main_order['subOrders']: skuText = ""if 'skuText' in sub_order['itemInfo']:for item in sub_order['itemInfo']['skuText']:skuText += item['value'] writer.writerow([main_order['orderInfo']['createDay'],sub_order['itemInfo']['title'], sub_order['priceInfo']['realTotal'],skuText])這樣一個csv就可以導出了,后續就可以用excel來處理了。添加上一些額外的列幫助分類即可。
建立數據透視表進行分類總和:
總結下來用自動化的方式鏈接API請求,非常的方便,節約了大量的時間。
總結
- 上一篇: 删除“已禁用输入法”托盘图标
- 下一篇: Kaldi内存泄漏问题排查