demo_易订货.py 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. # -*- codeing = utf-8 -*-
  2. # @Time : 2022/10/29 13:54
  3. # @Author : Clown
  4. # @File : demo_易订货.py
  5. # @Software : PyCharm
  6. import re
  7. import pandas as pd
  8. import hashlib
  9. import requests
  10. import json
  11. def getGoodsInfo():
  12. url = 'https://corp.dinghuo123.com/v2/goods/list?currentPage=1&pageSize=50&loadPrice=true'
  13. cookie = 'jwt=eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJqaWFuZ3hpYW9iYWl4eiIsInN1YiI6IntcImRiaWRcIjoyNTE5MDkxLFwic1wiOlwiUENcIixcInVpZFwiOjEyMjMwNTQ2LFwidXNlck5hbWVcIjpcImppYW5neGlhb2JhaXh6XCIsXCJ1c2VyVHlwZVwiOjF9IiwiZXhwIjoxNjY3ODc2MDk3fQ.MAWyTWjNrkugEjKMg1s4WROe5zQ_RF2Q1S1zByJEPSQ'
  14. headers = {
  15. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
  16. 'cookie': cookie}
  17. if 1==1:
  18. resp = requests.get (url, headers=headers).json ()
  19. # print(resp)
  20. rows_Cnt = resp['data']['totalCount']
  21. pageSize = resp['data']['pageSize']
  22. if int (rows_Cnt / pageSize) < rows_Cnt / pageSize:
  23. pages = int (rows_Cnt / pageSize) + 1
  24. else:
  25. pages = int (rows_Cnt / pageSize)
  26. if 1==0:
  27. pages = 1
  28. cnt = 0
  29. df_out = []
  30. for page in range (1, pages + 1):
  31. url_page = f'https://corp.dinghuo123.com/v2/goods/list?currentPage={page}&pageSize=50&loadPrice=true'
  32. resp = requests.get (url_page, headers=headers).json ()
  33. datas = resp['data']['items']
  34. for goodInfo in datas:
  35. goodInfo_dict = {}
  36. goodInfo_dict['id'] = goodInfo['id']
  37. goodInfo_dict['商品编码'] = goodInfo['code']
  38. goodInfo_dict['商品名称'] = goodInfo['name']
  39. goodInfo_dict['商品分类'] = goodInfo['productTypeName']
  40. goodInfo_dict['最小单位'] = goodInfo['productUnitName']
  41. unitList = goodInfo['unitList']
  42. unit_dict_map = {}
  43. n = 1
  44. for unit in unitList:
  45. unit_dict_map[str (unit['unitId'])] = {}
  46. unit_dict_map[str(unit['unitId'])]['unitName'] = unit['unitName']
  47. unit_dict_map[str (unit['unitId'])]['rate'] = unit['rate']
  48. if unit['rate'] > 1:
  49. goodInfo_dict[f'副单位{n}'] = unit['unitName']
  50. unit_dict_map[str (unit['unitId'])]['kind'] = n
  51. n += 1
  52. else:
  53. unit_dict_map[str (unit['unitId'])]['kind'] = 0
  54. priceList = goodInfo['priceList']
  55. for priceInfo in priceList:
  56. priceInfo_dict = {}
  57. priceInfo_dict['供货区域'] = priceInfo['customerTypeName']
  58. if priceInfo['isForbidden'] == '0':
  59. priceInfo_dict['区域起订量(最小单位)'] = priceInfo['minQuantity']
  60. for unit_price in priceInfo['unitPrices']:
  61. unitId = unit_price['unitId']
  62. orderPrice = unit_price['orderPrice']
  63. rate = unit_dict_map[str(unitId)]['rate']
  64. if unit_dict_map[str(unitId)]['kind'] == 0:
  65. priceInfo_dict['最小单位售价'] = orderPrice
  66. else:
  67. x = unit_dict_map[str(unitId)]['kind']
  68. priceInfo_dict[f'副单位{x}售价'] = orderPrice
  69. priceInfo_dict[f'副单位{x}换算数量'] = rate
  70. else:
  71. ...
  72. priceInfo_dict.update (goodInfo_dict)
  73. df_out.append (priceInfo_dict)
  74. # print (priceInfo_dict)
  75. df_out_header = ['id','商品编码','商品名称','商品分类','供货区域','区域起订量(最小单位)','最小单位','最小单位售价','副单位1','副单位1售价','副单位1换算数量']
  76. excel_out = pd.DataFrame(df_out,columns=df_out_header)
  77. excel_out.to_excel('C:/Users/ClownHe/Desktop/店务通数据/易订货系统商品信息20221103.xlsx',index=False)
  78. def run():
  79. ...
  80. if __name__ == '__main__':
  81. getGoodsInfo()