食亨菜单导出.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. # Author:Clown
  2. # -*- codeing = utf-8 -*-
  3. # @Time :2022/3/16 14:17
  4. # @File: 食亨菜单导出.py
  5. import requests
  6. import pandas as pd
  7. import time
  8. import xlrd
  9. from datetime import date, timedelta
  10. import os
  11. import shutil
  12. def submit(startTime,endTime,headers,brandId):
  13. url_submit = "https://bi.shihengtech.com/api/excel/order/detail/export/submit"
  14. params_submit = {
  15. "brandId":brandId,
  16. "endTime":endTime,
  17. "labelIds":[],
  18. "orderStatusEnum":"VALID",
  19. "startTime":startTime,
  20. "platforms":[0,1],
  21. "provinces":None,
  22. "cities":None,
  23. "shopIds":None,
  24. "taskBizTypeEnum":"ORDER_DETAIL_DETAIL"}
  25. resp_submit = requests.post(url_submit,json = params_submit,headers = headers)
  26. if resp_submit.json()['code'] == 200:
  27. submit_result = 1
  28. print("成功提交请求")
  29. return submit_result
  30. else:
  31. submit_result = 0
  32. print("请求失败")
  33. return submit_result
  34. def queryTasks(headers):
  35. url_queryTasks = "https://bi.shihengtech.com/api/shtask/queryTasks"
  36. params_queryTasks = {
  37. "pageNo":1,
  38. "pageSize":20
  39. }
  40. resp_queryTasks = requests.post(url_queryTasks,json = params_queryTasks,headers = headers)
  41. data_queryTasks = resp_queryTasks.json()['result']['result']
  42. df_link = data_queryTasks[0]["resultUrl"]
  43. df_name = data_queryTasks[0]["name"]
  44. return df_link,df_name
  45. def excel2parts(excel_file,save_path):
  46. # 打开excel文件
  47. for a,b,files in os.walk(excel_file,topdown = False):
  48. for file in files:
  49. path = str(excel_file)+'/'+str(file)
  50. workbook=xlrd.open_workbook(r'%s'%str(path))
  51. sheet_names=workbook.sheet_names()
  52. print(file, '正在拆分')
  53. for worksheet_name in sheet_names:
  54. data_xls=pd.read_excel(path,worksheet_name,dtype=str)
  55. data_xls.to_excel(save_path+'/'+str(file)[:-5]+worksheet_name+'.xlsx',index=0,encoding='utf-8-sig')
  56. print(file, worksheet_name, '已拆出')
  57. if __name__ == '__main__':
  58. startTime = (date.today() + timedelta(days=-1)).strftime("%Y-%m-%d")
  59. endTime = (date.today() + timedelta(days=-1)).strftime("%Y-%m-%d")
  60. save_path = r'C:\Users\浆小白_何\Desktop\订单详情'
  61. out_path = r'C:\Users\浆小白_何\Desktop\订单明细拆分'
  62. brandId = '102073'#浆小白
  63. user_token = "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJ1c2VySWRcIjoyNDYyfSIsImV4cCI6MTY0ODAxNjI5MH0.jTbLT1MrLzyBleTp5jZjnvJzXG7NqSgo5ve_csbXohofdpXyvdxIpZE4POl3jp80T4wqHDwMHGglzfcvze4Byg"
  64. # save_path = r'C:\Users\浆小白_何\Desktop\订单详情粥'
  65. # out_path = r'C:\Users\浆小白_何\Desktop\订单明细拆分粥'
  66. # brandId = '105541'#粥小鲜
  67. # user_token = "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJ1c2VySWRcIjo1MDAyfSIsImV4cCI6MTY0ODA4NzY1NX0.BgZuyoVkZU5y732blbRKmx9oswPUBnNqZJPk_34VxbFEJJlpyzEvoReaVMcXx-H0qJP8_Ry52CaE6uRscNzGhg"
  68. Cookie = "_ga=GA1.2.725502531.1618630729; " \
  69. "Hm_lvt_eaa57ca47dacb4ad4f5a257001a3457c=1625040492,1625123277,1625293351,1625448933; " \
  70. "_gid=GA1.2.296614433.1647229990; " \
  71. "acw_tc=76b20f6a16474114899837204e57f03f3766bf1b4d60819fca83da136ed7e6; " \
  72. "user-token=%s; " % str(user_token) + "_gat_gtag_UA_127759150_3=1"
  73. headers = {
  74. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36",
  75. "Content-Type": "application/json;charset=UTF-8",
  76. "Accept": "application/json",
  77. "Accept-Encoding": "gzip, deflate, br",
  78. "user-token": user_token,
  79. "Cookie": Cookie}
  80. shutil.rmtree(save_path)
  81. os.mkdir(save_path)
  82. print('已清空文件夹')
  83. if submit(startTime, endTime, headers,brandId) == 1 :#提交请求成功执信
  84. s = 2
  85. df_link,df_name = queryTasks(headers)
  86. while df_link == None:
  87. time.sleep(2)
  88. print("\rloading %d"%(s),end='')
  89. s += 2
  90. df_link, df_name = queryTasks(headers)
  91. df_data = requests.get(df_link).content
  92. with open(save_path+r'/%s.xlsx' % str(df_name),mode='wb') as f:
  93. f.write(df_data)
  94. print("\n",df_name,'下载成功')
  95. excel2parts(save_path, out_path)
  96. else:
  97. print("有未知错误,请检查")