淘宝买家订单导出
轉(zhuǎn)載自:https://www.jianshu.com/p/b10066e60b6c
最近想分析一下2018年10月第一次入了偉力的12428小車以后在模型上的消費(fèi),但是從2018年到今年很多的訂單。本想自己截圖一下然后計(jì)算的,但發(fā)現(xiàn)非常的麻煩。淘寶又沒有工具能夠?qū)С鲇唵蔚墓ぞ?。手工做的話還是放棄吧,還是研究下自動(dòng)的方式。
使用selenium等方式還比較麻煩,試了下無法登陸,拖動(dòng)驗(yàn)證碼的時(shí)候就報(bào)錯(cuò)了。打開API請(qǐng)求發(fā)現(xiàn)翻頁(yè)的API請(qǐng)求asyncBrought包含了訂單的詳細(xì)信息,非常的方便。
怎么攔截這些API請(qǐng)求呢?想用下Tempermonkey但似乎沒提供攔截的功能。還是用一個(gè)中間代理mitmproxy這個(gè)工具能夠滿足這樣的需求。
代碼很簡(jiǎn)單,只需要把a(bǔ)syncBought攔截,然后把數(shù)據(jù)寫到一個(gè)json文件即可。json文件用當(dāng)前的頁(yè)碼作為文件名,比較好處理。
運(yùn)行mitmdump -s 執(zhí)行這個(gè)腳本,遇到了Chrome的HTST的報(bào)錯(cuò)。參考這里關(guān)閉這個(gè)功能:https://appuals.com/how-to-clear-or-disable-hsts-for-chrome-firefox-and-internet-explorer/
弄好了以后,只需要手工點(diǎn)擊“下一頁(yè)”數(shù)次即可抓到所有的數(shù)據(jù):
拿到這些數(shù)據(jù)后,在寫一個(gè)腳本,將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'] != '交易關(guān)閉':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])這樣一個(gè)csv就可以導(dǎo)出了,后續(xù)就可以用excel來處理了。添加上一些額外的列幫助分類即可。
建立數(shù)據(jù)透視表進(jìn)行分類總和:
總結(jié)下來用自動(dòng)化的方式鏈接API請(qǐng)求,非常的方便,節(jié)約了大量的時(shí)間。
總結(jié)
- 上一篇: 删除“已禁用输入法”托盘图标
- 下一篇: Kaldi内存泄漏问题排查