mdbq 2.2.4__py3-none-any.whl → 2.2.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mdbq/company/copysh.py +11 -6
- mdbq/other/sku_picture.py +38 -7
- {mdbq-2.2.4.dist-info → mdbq-2.2.6.dist-info}/METADATA +1 -1
- {mdbq-2.2.4.dist-info → mdbq-2.2.6.dist-info}/RECORD +6 -6
- {mdbq-2.2.4.dist-info → mdbq-2.2.6.dist-info}/WHEEL +0 -0
- {mdbq-2.2.4.dist-info → mdbq-2.2.6.dist-info}/top_level.txt +0 -0
mdbq/company/copysh.py
CHANGED
@@ -371,12 +371,8 @@ def main():
|
|
371
371
|
# 更新货品年份基准表, 属性设置 2 - 货品年份基准
|
372
372
|
p = products.Products()
|
373
373
|
p.to_mysql(service_databases=[
|
374
|
-
# {
|
375
|
-
|
376
|
-
# },
|
377
|
-
{
|
378
|
-
'company': 'mysql'
|
379
|
-
}
|
374
|
+
# {'home_lx': 'mysql'},
|
375
|
+
{'company': 'mysql'}
|
380
376
|
]
|
381
377
|
)
|
382
378
|
|
@@ -405,3 +401,12 @@ if __name__ == '__main__':
|
|
405
401
|
main()
|
406
402
|
# # 聚合数据,并清理聚合数据
|
407
403
|
# query_data.data_aggregation(service_databases=[{'company': 'mysql'}], months=1)
|
404
|
+
|
405
|
+
# sku_picture.download_spu(
|
406
|
+
# service_name='company',
|
407
|
+
# database='mysql',
|
408
|
+
# db_name='属性设置2',
|
409
|
+
# table_name='商品spu素材下载记录',
|
410
|
+
# col_name='商品图片',
|
411
|
+
# save_path=os.path.join(f'\\\\192.168.1.198\\时尚事业部\\01.运营部\\天猫报表\\其他文件', '商品id_商家编码_图片'),
|
412
|
+
# )
|
mdbq/other/sku_picture.py
CHANGED
@@ -511,6 +511,7 @@ class DownloadPicture():
|
|
511
511
|
self.filename = ''
|
512
512
|
self.local_file = ''
|
513
513
|
self.finish_download = []
|
514
|
+
self.finish_d2 = [{'完成时间': [], '完成id': []}]
|
514
515
|
|
515
516
|
def get_df_from_service(self):
|
516
517
|
start_date, end_date = self.months_data(num=self.months)
|
@@ -598,8 +599,16 @@ class DownloadPicture():
|
|
598
599
|
url = data[col_name]
|
599
600
|
# self.filename = f'{data['店铺名称']}_{data['商品id']}_{data['商家编码']}.jpg'
|
600
601
|
self.filename = f'{data['商品id']}_{data['商家编码']}.jpg'
|
602
|
+
# 清除特殊符号,避免无法创建文件
|
603
|
+
self.filename = re.sub(r'[\\/\u4e00-\u9fa5‘’“”【】\[\]{}、,,~~!!]', '_', self.filename)
|
601
604
|
if os.path.isfile(os.path.join(self.save_path, self.filename)):
|
602
|
-
self.finish_download.append(data['商品id'])
|
605
|
+
# self.finish_download.append(data['商品id'])
|
606
|
+
self.finish_d2.append(
|
607
|
+
[
|
608
|
+
{'完成时间': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')},
|
609
|
+
{'完成id': data['商品id']}
|
610
|
+
]
|
611
|
+
)
|
603
612
|
i += 1
|
604
613
|
continue
|
605
614
|
if 'https' not in url:
|
@@ -609,10 +618,19 @@ class DownloadPicture():
|
|
609
618
|
print(f'正在下载: {i}/{num}, {data['商品id']}')
|
610
619
|
self.headers.update({'User-Agent': ua_sj.get_ua()})
|
611
620
|
res = requests.get(url, headers=self.headers) # 下载图片到内存
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
621
|
+
try:
|
622
|
+
# 保存图片到本地文件夹
|
623
|
+
with open(os.path.join(self.save_path, self.filename), 'wb') as f:
|
624
|
+
f.write(res.content)
|
625
|
+
# self.finish_download.append(data['商品id'])
|
626
|
+
self.finish_d2.append(
|
627
|
+
[
|
628
|
+
{'完成时间': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')},
|
629
|
+
{'完成id': data['商品id']}
|
630
|
+
]
|
631
|
+
)
|
632
|
+
except Exception as e:
|
633
|
+
print(f'{self.filename}: {e}')
|
616
634
|
i += 1
|
617
635
|
time.sleep(0.5)
|
618
636
|
|
@@ -921,7 +939,14 @@ def download_sku(service_name='company', database='mysql', db_name='属性设置
|
|
921
939
|
|
922
940
|
def download_spu(service_name='company', database='mysql', db_name='属性设置2', table_name='商品spu素材下载记录', col_name='商品图片', save_path=os.path.join(D_PATH, '商品id_商家编码_图片')):
|
923
941
|
"""
|
924
|
-
|
942
|
+
1. 从商品素材导出中获取数据
|
943
|
+
2. 从商品id编码表 中获取数据
|
944
|
+
商品id编码表 是合并生意经的数据,主要获取商品编码,
|
945
|
+
对于未上架或者刚上架的货品,生意经未有数据,所以合并两表后,可能缺失商品编码信息
|
946
|
+
3. 更新数据库,不存在则创建
|
947
|
+
4. 从数据库中提取未下载的数据记录
|
948
|
+
5. 实例化一个下载器类,并下载数据
|
949
|
+
6. 回传并更新数据库
|
925
950
|
"""
|
926
951
|
|
927
952
|
# 1. 从商品素材导出中获取数据
|
@@ -964,6 +989,8 @@ def download_spu(service_name='company', database='mysql', db_name='属性设置
|
|
964
989
|
# df = df.head(2)
|
965
990
|
|
966
991
|
# 2. 从商品id编码表 中获取数据
|
992
|
+
# 商品id编码表 是合并生意经的数据,主要获取商品编码,
|
993
|
+
# 对于未上架或者刚上架的货品,生意经未有数据,所以合并两表后,可能缺失商品编码信息
|
967
994
|
projection = {
|
968
995
|
'宝贝id': 1,
|
969
996
|
'商家编码': 1,
|
@@ -1017,7 +1044,11 @@ def download_spu(service_name='company', database='mysql', db_name='属性设置
|
|
1017
1044
|
d.filename = f'{db_name}_{table_name}.xlsx'
|
1018
1045
|
d.df = df
|
1019
1046
|
d.download_from_df(col_name=col_name, save_path=save_path)
|
1020
|
-
|
1047
|
+
# finish_id = [item['完成id'] for item in d.finish_d2]
|
1048
|
+
# df['获取与下载'] = df.apply(lambda x: '已下载' if x['商品id'] in finish_id else x['获取与下载'], axis=1)
|
1049
|
+
for item in d.finish_d2:
|
1050
|
+
df['获取与下载'] = df.apply(lambda x: '已下载' if x['商品id'] == item['完成id'] else x['获取与下载'], axis=1)
|
1051
|
+
df['时间'] = df.apply(lambda x: item['完成时间'] if x['商品id'] == item['完成id'] else x['时间'], axis=1)
|
1021
1052
|
|
1022
1053
|
# 6. 回传数据库
|
1023
1054
|
username, password, host, port = get_myconf.select_config_values(target_service=service_name, database=database)
|
@@ -11,7 +11,7 @@ mdbq/bdup/bdup.py,sha256=LAV0TgnQpc-LB-YuJthxb0U42_VkPidzQzAagan46lU,4234
|
|
11
11
|
mdbq/clean/__init__.py,sha256=A1d6x3L27j4NtLgiFV5TANwEkLuaDfPHDQNrPBbNWtU,41
|
12
12
|
mdbq/clean/data_clean.py,sha256=ZJOTT0sNWP85x4pJl39UZBwN4Bnf8Ao-iVOJNiiRPEE,103996
|
13
13
|
mdbq/company/__init__.py,sha256=qz8F_GsP_pMB5PblgJAUAMjasuZbOEp3qQOCB39E8f0,21
|
14
|
-
mdbq/company/copysh.py,sha256=
|
14
|
+
mdbq/company/copysh.py,sha256=xjlfb-RwW0oLyyHQZFUtmXvCpWI7Y_nhwa0tqW14wZk,19345
|
15
15
|
mdbq/company/home_sh.py,sha256=42CZ2tZIXHLl2mOl2gk2fZnjH2IHh1VJ1s3qHABjonY,18021
|
16
16
|
mdbq/config/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
|
17
17
|
mdbq/config/get_myconf.py,sha256=cmNvsyoNa0RbZ9FOTjSd3jyyGwkxjUo0phvdHbGlrms,6010
|
@@ -31,14 +31,14 @@ mdbq/mysql/year_month_day.py,sha256=VgewoE2pJxK7ErjfviL_SMTN77ki8GVbTUcao3vFUCE,
|
|
31
31
|
mdbq/other/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
|
32
32
|
mdbq/other/porxy.py,sha256=UHfgEyXugogvXgsG68a7QouUCKaohTKKkI4RN-kYSdQ,4961
|
33
33
|
mdbq/other/pov_city.py,sha256=AEOmCOzOwyjHi9LLZWPKi6DUuSC-_M163664I52u9qw,21050
|
34
|
-
mdbq/other/sku_picture.py,sha256=
|
34
|
+
mdbq/other/sku_picture.py,sha256=Qb2ANG-c79A6WctB4lziAwrDNUMyc6JIhKzNemqGff4,50068
|
35
35
|
mdbq/other/ua_sj.py,sha256=JuVYzc_5QZ9s_oQSrTHVKkQv4S_7-CWx4oIKOARn_9U,22178
|
36
36
|
mdbq/pbix/__init__.py,sha256=Trtfaynu9RjoTyLLYBN2xdRxTvm_zhCniUkVTAYwcjo,24
|
37
37
|
mdbq/pbix/pbix_refresh.py,sha256=JUjKW3bNEyoMVfVfo77UhguvS5AWkixvVhDbw4_MHco,2396
|
38
38
|
mdbq/pbix/refresh_all.py,sha256=viOlLCmz9zg61Q2nzjgl8dChfQxnxRd1A_jmQMb2oDM,5918
|
39
39
|
mdbq/pbix/refresh_all_old.py,sha256=_pq3WSQ728GPtEG5pfsZI2uTJhU8D6ra-htIk1JXYzw,7192
|
40
40
|
mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
|
41
|
-
mdbq-2.2.
|
42
|
-
mdbq-2.2.
|
43
|
-
mdbq-2.2.
|
44
|
-
mdbq-2.2.
|
41
|
+
mdbq-2.2.6.dist-info/METADATA,sha256=dmwcBZiI-zVqfBkU3i6-YNS6rpfzNX9FJwoYCj3i9qQ,245
|
42
|
+
mdbq-2.2.6.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
43
|
+
mdbq-2.2.6.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
|
44
|
+
mdbq-2.2.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|