123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373 |
- # -*- codeing = utf-8 -*-
- # @Time : 2022/8/12 11:04
- # @Author : Clown
- # @File : url_test.py
- # @Software : PyCharm
- import requests
- import random
- from datetime import datetime,timedelta
- import time
- import os
- import shutil
- beginTime = (datetime.today() + timedelta(days=-1)).strftime('%Y-%m-%d') #2022-06-23
- endTime = (datetime.today() + timedelta(days=-1)).strftime('%Y-%m-%d') #2022-06-23
- beginTime_int =int((datetime.today() + timedelta(days=-1)).strftime('%Y%m%d')) #20220623
- endTime_int = int((datetime.today() + timedelta(days=-1)).strftime('%Y%m%d')) #20220623
- # print(beginTime)
- # print(beginTime_int)
- # print(endTime)
- # print(endTime_int)
- # url = 'https://app-api.shop.ele.me/stats/invoke/?method=CustomerAnalysisService.customerHierarchyData'
- # headers = {
- # 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36',
- # 'content-type': 'application/json',
- # 'accept': 'application/json, text/plain, */*',
- # 'sec-ch-ua': '"Chromium";v="104", " Not A;Brand";v="99", "Google Chrome";v="104"',
- # 'sec-ch-ua-mobile': '?0',
- # 'sec-ch-ua-platform': "Windows",
- # 'sec-fetch-dest': 'empty',
- # 'sec-fetch-mode': 'cors',
- # 'sec-fetch-site': 'same-site',
- # 'referer': 'https://melody-stats-next.faas.ele.me/',
- # 'bx-ua':'140#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'
- #
- # }
- # params = {"id":"3CF8E83EF1FE4D299B2E44E83328B50D|1619496050955",
- # "metas":{"appName":"melody",
- # "appVersion":"4.4.0",
- # "ksid":"YZY0MZMTA1Mjc0Mzc5NjQzNTAxT1ZzaTNlKzlQ",
- # "shopId":173858169},
- # "service":"CustomerAnalysisService",
- # "method":"customerHierarchyData",
- # "params":{"req":{"shopId":173858169,
- # "timeEnum":"NEARLY_90_DAYS"}},
- # "ncp":"2.0.0"}
- # # resp = requests.post(url,headers=headers,json=params,).json()
- # # print(resp)
- # # highFreqCustomer30 = resp['result']['highFreqCustomer']['value']
- # # mediumFreqCustomer30 = resp['result']['mediumFreqCustomer']['value']
- # # lowFreqCustomer30 = resp['result']['lowFreqCustomer']['value']
- # # CustomerNum30days = int (highFreqCustomer30) + int (mediumFreqCustomer30) + int (lowFreqCustomer30)
- # # print(CustomerNum30days)
- # print(random.uniform(0.05,1))
- # url = 'https://api.dinghuo123.com/v2/oauth2/token'
- # params = {'userName':'jiangxiaobaixz',
- # 'password':'jiangxiaobaixz888',
- # 'client_id':'1111',
- # 'client_secret':'3sfX3HJX484gXYz',
- # 'grant_type':'client_credentials',
- # 'scope':'basic'}
- # headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36',
- # 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
- # resp = requests.get(url,params=params,headers=headers).text
- # print(resp)
- # from collections import Counter
- # a=['日期', '门店名称', '门店编号', '城市名称', '营业时长', '高峰期营业时长', '有效订单', '无效订单', '收入', '营业额', '支出', '顾客实付总额', '单均实付', '单均收入', '商品销售额', '餐盒费', '自配送费', '其他营业额', '抽佣', '活动补贴', '代金券补贴', '配送费补贴', '智能满减补贴', '智能满减服务费', '基础物流费', '其他服务费支出', '商户原因无效订单数', '曝光人数', '曝光次数', '进店次数', '进店人数', '进店转化率', '下单转化率', '新客下单转化率', '老客下单转化率', '参与活动数', '活动订单数', '活动订单占比', '满减活动订单数', '超会活动订单数', '配送活动订单数', '投入产出比', '活动总补贴', '饿了么补贴', '代理商补贴', '商家活动成本(含满减活动)', '商家活动成本(不含满减活动)', '营销力度(含满减活动)', '营销力度(不含满减活动)', '下单人数', '近7日复购人数', '近7日复购率', '近30日复购人数', '近30日复购率', '新客人数', '老客人数', '上架商品数', '有交易商品数', '库存不足商品数', '新上架商品数', '活动商品数', '差评订单数', '投诉订单数', '投诉订单id', '出餐超时订单数', '出餐超时订单id', '单均出餐时长', '催单数', '拒单数', '出餐宝扫码出餐订单数', '商责取消数', '商责超时数', '商责退单数', '商责催单数', '商责取消率', '商责超时率', '商责退单率', '商责催单率', '店铺评分', '满意度得分', '味道得分', '包装得分', '好评率', '好评数', '中评率', '中评数', '差评率', '差评数', '优质评价率', '优质评价数', '订单评价率', '订单评价数', '差评人工回复率']
- #
- # b=['日期', '门店名称', '城市名称', '营业时长', '高峰期营业时长', '门店编号','有效订单', '无效订单', '收入', '营业额', '支出', '顾客实付总额', '单均实付', '单均收入', '商品销售额', '餐盒费', '自配送费', '其他营业额', '抽佣', '活动补贴', '代金券补贴', '配送费补贴', '智能满减补贴', '智能满减服务费', '基础物流费', '其他服务费支出', '商户原因无效订单数', '曝光人数', '曝光次数', '进店次数', '进店人数', '进店转化率', '下单转化率', '新客下单转化率', '老客下单转化率', '参与活动数', '活动订单数', '活动订单占比', '满减活动订单数', '超会活动订单数', '配送活动订单数', '投入产出比', '活动总补贴', '饿了么补贴', '代理商补贴', '商家活动成本(含满减活动)', '商家活动成本(不含满减活动)', '营销力度(含满减活动)', '营销力度(不含满减活动)', '下单人数', '近7日复购人数', '近7日复购率', '近30日复购人数', '近30日复购率', '新客人数', '老客人数', '上架商品数', '有交易商品数', '库存不足商品数', '新上架商品数', '活动商品数', '差评订单数', '投诉订单数', '投诉订单id', '出餐超时订单数', '出餐超时订单id', '单均出餐时长', '催单数', '拒单数', '出餐宝扫码出餐订单数', '商责取消数', '商责超时数', '商责退单数', '商责催单数', '商责取消率', '商责超时率', '商责退单率', '商责催单率', '店铺评分', '满意度得分', '味道得分', '包装得分', '好评率', '好评数', '中评率', '中评数', '差评率', '差评数', '优质评价率', '优质评价数', '订单评价率', '订单评价数', '差评人工回复率']
- #
- # a = Counter(a)
- # print(a)
- # b = Counter(b)
- # print(b)
- # print (dict(a)==dict(b))
- # version = 'V234'
- # num = version.split('V')[1]
- # new_version = 'V'+str(int(num)+1)
- # print(new_version)
- if 1==0:
- timestamp = str(int(time.time()))
- random = str(random.randint(1,10000))
- corpId = 'wp4nJkEAAAXE4BbTWEYSdyrX_-fl8vqA'
- secret = 'fc092ce3365b4da39c682298f6b8684e'
- account = 'wo4nJkEAAARtG8M8Ig6n6r5eyQ1Vj1ow'
- headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36'}
- url_AccessKey = f'https://qiqiao.do1.com.cn/plus/cgi-bin/securities/access_key?timestamp={timestamp}&random={random}&corpId={corpId}&secret={secret}&account={account}'
- resp_AccessKey = requests.get(url_AccessKey,headers= headers).json()
- accessKey = resp_AccessKey['data']
- url_Token = f'https://qiqiao.do1.com.cn/plus/cgi-bin/securities/qiqiao_token?timestamp={timestamp}&random={random}&corpId={corpId}&secret={secret}&account={account}&accessKey={accessKey}'
- resp_Token = requests.get(url_Token,headers= headers).json()
- # print(requests.get(url_Token,headers= headers).text)
- Token = resp_Token['data']
- print(Token)
- #
- Token = '6812266045168435200'
- if 1 == 0:
- headers_api = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36',
- "Content-type": "application/json",
- "X-Auth0-Token": Token}
- applicationId = '62cfb64cb433f27040103cca' #测试
- formModelId = '630f1fb798c136661c4d03a6' #文件上传下载
- row_id = '6812277521321132032'
- shutil.rmtree (save_path)
- shutil.rmtree (out_path_forms)
- shutil.rmtree (out_path_goods)
- os.mkdir (save_path)
- os.mkdir (out_path_forms)
- os.mkdir (out_path_goods)
- url_select = f'https://qiqiao.do1.com.cn/plus/cgi-bin/open/applications/{applicationId}/forms/{formModelId}/{row_id}'
- resp_chaxun = requests.get(url_select, headers=headers_api).json()
- print(resp_chaxun)
- input_files = resp_chaxun['data']['variables']['输入文件']
- for file_info in input_files:
- fileId = file_info['fileId']
- name = str(file_info['name'])
- # url = f'https://qiqiao.do1.com.cn/plus/cgi-bin/open/file_download/applications/{applicationId}/form_models/{formModelId}/documents/{row_id}'
- # params = 'needDownloadFieldName=输入文件'
- # resp = requests.get(url,headers=headers_api,params=params).json()
- # fileId = resp['data']['fileId']
- # print(fileId)
- url_down = f'https://qiqiao.do1.com.cn/plus/cgi-bin/open/file_download/applications/{applicationId}/files/{fileId}'
- resp_down = requests.get(url_down,headers=headers_api).content
- save_path = r'C:\Users\ClownHe\Desktop\goods'
- with open (save_path + r'\%s' % str (name), mode='wb') as f:
- f.write (resp_down)
- print(name,'下载成功')
- # file_name = r'C:\Users\ClownHe\Desktop\goods\6812277521321132032\elmsave'
- #
- # for a, b, files in os.walk(file_name, topdown=False):
- # print(len(files),a,b)
- # if len(files) == 0:
- # ...
- # else:
- # for file in files:
- # print(file)
- # a= ['1','0','1']
- # a = []
- # from chardet.universaldetector import UniversalDetector
- # file_name = 'C:/Users/ClownHe/Desktop/goods/test'
- # for a, b, files in os.walk(file_name, topdown=False):
- # for file in files:
- # with open (file_name + '/' + file, 'rb') as f:
- # detector = UniversalDetector ()
- # for line in f.readlines ():
- # print(line)
- # detector.feed (line)
- # if detector.done:
- # break
- # # detector.close ()
- # # line = f.readlines ()[0]
- # # print(line)
- # # detector.feed (line)
- # # detector.close()
- # en = detector.result['encoding']
- # print(en)
- # import os
- # from chardet.universaldetector import UniversalDetector
- #
- # def get_filelist(path):
- # """
- # 获取路径下所有csv文件的路径列表
- # """
- # Filelist = []
- # for home, dirs, files in os.walk(path):
- # for filename in files:
- # if ".csv" in filename:
- # Filelist.append(os.path.join(home, filename))
- # return Filelist
- #
- # def read_file(file):
- # """
- # 逐个读取文件的内容
- # """
- # with open(file, 'rb') as f:
- # return f.read()
- #
- # def get_encode_info(file):
- # """
- # 逐个读取文件的编码方式
- # """
- # with open(file, 'rb') as f:
- # detector = UniversalDetector()
- # for line in f.readlines():
- # detector.feed(line)
- # if detector.done:
- # break
- # detector.close()
- # return detector.result['encoding']
- #
- # def convert_encode2utf8(file, original_encode, des_encode):
- # """
- # 将文件的编码方式转换为utf-8,并写入原先的文件中。
- # """
- # file_content = read_file(file)
- # file_decode = file_content.decode(original_encode, 'ignore')
- # file_encode = file_decode.encode(des_encode)
- # with open(file, 'wb') as f:
- # f.write(file_encode)
- #
- # def read_and_convert(path):
- # """
- # 读取文件并转换
- # """
- # Filelist = get_filelist(path=path)
- # fileNum= 0
- # for filename in Filelist:
- # try:
- # file_content = read_file(filename)
- # encode_info = get_encode_info(filename)
- # if encode_info != 'utf-8':
- # fileNum +=1
- # convert_encode2utf8(filename, encode_info, 'utf-8')
- # print('成功转换 %s 个文件 %s '%(fileNum,filename))
- # except BaseException:
- # print(filename,'存在问题,请检查!')
- #
- # def recheck_again(path):
- # """
- # 再次判断文件是否为utf-8
- # """
- # print('---------------------以下文件仍存在问题---------------------')
- # Filelist = get_filelist(path)
- # for filename in Filelist:
- # encode_info_ch = get_encode_info(filename)
- # if encode_info_ch != 'utf-8':
- # print(filename,'的编码方式是:',encode_info_ch)
- #
- # print('--------------------------检查结束--------------------------')
- # if __name__ == "__main__":
- # """
- # 输入文件路径
- # """
- # path = 'C:/Users/ClownHe/Desktop/goods/test'
- # read_and_convert(path)
- # recheck_again(path)
- # print('转换结束!')
- # for i in range(60):
- # print(i)
- # time.sleep (0.5)
- # url = 'http://fg94wp.natappfree.cc/'
- # name = f'这是mypc{i}'
- # json = {'name':name}
- # re = requests.post(url,json=json).text
- # print(re)
- # time.sleep(5)
- # for i in range(60):
- # a = 59+i
- # print(a)
- # url = 'http://fg94wp.natappfree.cc/'
- # name = f'这是{a}'
- # json = {'name':name}
- # requests.post(url,json=json)
- # re1 = requests.post (url, json=json).text
- # print (re1)
- # time.sleep(3)
- # for i in range(60):
- # b= 119 + i
- # print(b)
- # url = 'http://fg94wp.natappfree.cc/'
- # name = f'这是{b}'
- # json = {'name':name}
- # requests.post(url,json=json)
- # a = time.time()
- # for i in range(1000000000):
- # ...
- # print(time.time()-a)
- # a = [1,2,3,4,4,""]
- # for b in a:
- # if b not in [4,""]:
- # print(b)
- #
- # a = {'data':{'a':''}}
- # a['data']['c'] = 1
- # import json
- # print(json.dumps(a,ensure_ascii=False))
- a = [1,2,3,4,5,6,7,8,9,0]
- # n = len(a)
- # cnt = 3
- #
- # s = n//cnt
- # r = n%cnt
- # if r >0:
- # s = s+1
- # out = []
- # for i in range(s):
- # b = a[(i)*cnt:(i+1)*cnt]
- # out.append(b)
- # print(out)
- # a_resp = []
- # b_sql = [2]
- # update = list(set(a_resp).intersection(set(b_sql)))
- # insert = list(set(a_resp).difference(set(b_sql)))
- # delete = list(set(b_sql).difference(set(a_resp)))
- # print(update,insert,delete)
- #
- #
- # c = ['肠粉1','肠粉2','肠粉3','肠粉4','肠粉5']
- # a = ','.join(c)
- # print(a)
- # a = 'a'
- # b = a.split(',')
- # print(b)
- if 1==0:
- c = [1,2,3,0,5,6,7,9]
- for i in c:
- try:
- b = 1/i
- except Exception as e:
- print(e)
- continue
- print(i,b)
- import functools
- def retry(func):
- @functools.wraps(func)
- def wrapper(*args, **kwargs):
- while True:
- try:
- return func(*args, **kwargs)
- except Exception as e:
- print(f"Error occurred: {e}")
- print("Retrying...")
- return wrapper
- @retry
- def my_function(b):
- a = 1/b
- return a
- # my_function(0)
- def aa(func):
- def b(*args,**kwargs):
- n = 0
- while n < 3:
- try:
- func (*args, **kwargs)
- d = 'yes'
- n = 4
- except:
- d = 'no'
- n += 1
- print (d,n)
- return b
- # @aa
- # def c(a):
- # c = 1/a
- # print(f'结果{c}')
- #
- # for i in [1,0,9,0,4]:
- # print(f'这是{i}')
- # c(i)
|