# -*- codeing = utf-8 -*- # @Time : 2022/10/29 13:54 # @Author : Clown # @File : demo_易订货.py # @Software : PyCharm import re import pandas as pd import hashlib import requests import json def getGoodsInfo(): url = 'https://corp.dinghuo123.com/v2/goods/list?currentPage=1&pageSize=50&loadPrice=true' cookie = 'jwt=eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJqaWFuZ3hpYW9iYWl4eiIsInN1YiI6IntcImRiaWRcIjoyNTE5MDkxLFwic1wiOlwiUENcIixcInVpZFwiOjEyMjMwNTQ2LFwidXNlck5hbWVcIjpcImppYW5neGlhb2JhaXh6XCIsXCJ1c2VyVHlwZVwiOjF9IiwiZXhwIjoxNjY3ODc2MDk3fQ.MAWyTWjNrkugEjKMg1s4WROe5zQ_RF2Q1S1zByJEPSQ' headers = { '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', 'cookie': cookie} if 1==1: resp = requests.get (url, headers=headers).json () # print(resp) rows_Cnt = resp['data']['totalCount'] pageSize = resp['data']['pageSize'] if int (rows_Cnt / pageSize) < rows_Cnt / pageSize: pages = int (rows_Cnt / pageSize) + 1 else: pages = int (rows_Cnt / pageSize) if 1==0: pages = 1 cnt = 0 df_out = [] for page in range (1, pages + 1): url_page = f'https://corp.dinghuo123.com/v2/goods/list?currentPage={page}&pageSize=50&loadPrice=true' resp = requests.get (url_page, headers=headers).json () datas = resp['data']['items'] for goodInfo in datas: goodInfo_dict = {} goodInfo_dict['id'] = goodInfo['id'] goodInfo_dict['商品编码'] = goodInfo['code'] goodInfo_dict['商品名称'] = goodInfo['name'] goodInfo_dict['商品分类'] = goodInfo['productTypeName'] goodInfo_dict['最小单位'] = goodInfo['productUnitName'] unitList = goodInfo['unitList'] unit_dict_map = {} n = 1 for unit in unitList: unit_dict_map[str (unit['unitId'])] = {} unit_dict_map[str(unit['unitId'])]['unitName'] = unit['unitName'] unit_dict_map[str (unit['unitId'])]['rate'] = unit['rate'] if unit['rate'] > 1: goodInfo_dict[f'副单位{n}'] = unit['unitName'] unit_dict_map[str (unit['unitId'])]['kind'] = n n += 1 else: unit_dict_map[str (unit['unitId'])]['kind'] = 0 priceList = goodInfo['priceList'] for priceInfo in priceList: priceInfo_dict = {} priceInfo_dict['供货区域'] = priceInfo['customerTypeName'] if priceInfo['isForbidden'] == '0': priceInfo_dict['区域起订量(最小单位)'] = priceInfo['minQuantity'] for unit_price in priceInfo['unitPrices']: unitId = unit_price['unitId'] orderPrice = unit_price['orderPrice'] rate = unit_dict_map[str(unitId)]['rate'] if unit_dict_map[str(unitId)]['kind'] == 0: priceInfo_dict['最小单位售价'] = orderPrice else: x = unit_dict_map[str(unitId)]['kind'] priceInfo_dict[f'副单位{x}售价'] = orderPrice priceInfo_dict[f'副单位{x}换算数量'] = rate else: ... priceInfo_dict.update (goodInfo_dict) df_out.append (priceInfo_dict) # print (priceInfo_dict) df_out_header = ['id','商品编码','商品名称','商品分类','供货区域','区域起订量(最小单位)','最小单位','最小单位售价','副单位1','副单位1售价','副单位1换算数量'] excel_out = pd.DataFrame(df_out,columns=df_out_header) excel_out.to_excel('C:/Users/ClownHe/Desktop/店务通数据/易订货系统商品信息20221103.xlsx',index=False) def run(): ... if __name__ == '__main__': getGoodsInfo()