mdbq 2.6.3__tar.gz → 2.6.4__tar.gz

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.
Files changed (52) hide show
  1. {mdbq-2.6.3 → mdbq-2.6.4}/PKG-INFO +1 -1
  2. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/aggregation/aggregation.py +1 -1
  3. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/aggregation/query_data.py +15 -21
  4. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/clean/clean_upload.py +25 -10
  5. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/spider/aikucun.py +22 -20
  6. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq.egg-info/PKG-INFO +1 -1
  7. {mdbq-2.6.3 → mdbq-2.6.4}/setup.py +1 -1
  8. {mdbq-2.6.3 → mdbq-2.6.4}/README.txt +0 -0
  9. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/__init__.py +0 -0
  10. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/__version__.py +0 -0
  11. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/aggregation/__init__.py +0 -0
  12. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/aggregation/df_types.py +0 -0
  13. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/aggregation/mysql_types.py +0 -0
  14. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/aggregation/optimize_data.py +0 -0
  15. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/bdup/__init__.py +0 -0
  16. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/bdup/bdup.py +0 -0
  17. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/clean/__init__.py +0 -0
  18. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/clean/data_clean.py +0 -0
  19. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/company/__init__.py +0 -0
  20. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/company/copysh.py +0 -0
  21. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/company/home_sh.py +0 -0
  22. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/config/__init__.py +0 -0
  23. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/config/get_myconf.py +0 -0
  24. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/config/products.py +0 -0
  25. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/config/set_support.py +0 -0
  26. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/config/update_conf.py +0 -0
  27. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/dataframe/__init__.py +0 -0
  28. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/dataframe/converter.py +0 -0
  29. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/log/__init__.py +0 -0
  30. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/log/mylogger.py +0 -0
  31. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/mongo/__init__.py +0 -0
  32. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/mongo/mongo.py +0 -0
  33. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/mysql/__init__.py +0 -0
  34. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/mysql/mysql.py +0 -0
  35. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/mysql/s_query.py +0 -0
  36. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/mysql/year_month_day.py +0 -0
  37. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/other/__init__.py +0 -0
  38. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/other/porxy.py +0 -0
  39. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/other/pov_city.py +0 -0
  40. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/other/sku_picture.py +0 -0
  41. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/other/ua_sj.py +0 -0
  42. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/pbix/__init__.py +0 -0
  43. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/pbix/pbix_refresh.py +0 -0
  44. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/pbix/refresh_all.py +0 -0
  45. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/pbix/refresh_all_old.py +0 -0
  46. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/req_post/__init__.py +0 -0
  47. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/req_post/req_tb.py +0 -0
  48. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq/spider/__init__.py +0 -0
  49. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq.egg-info/SOURCES.txt +0 -0
  50. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq.egg-info/dependency_links.txt +0 -0
  51. {mdbq-2.6.3 → mdbq-2.6.4}/mdbq.egg-info/top_level.txt +0 -0
  52. {mdbq-2.6.3 → mdbq-2.6.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 2.6.3
3
+ Version: 2.6.4
4
4
  Home-page: https://pypi.org/project/mdbsql
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -1305,7 +1305,7 @@ if __name__ == '__main__':
1305
1305
 
1306
1306
  # 上传 1 个文件到数据库
1307
1307
  one_file_to_mysql(
1308
- file='/Users/xigua/Downloads/万里马箱包推广1_营销概况_全站营销_2024-08-18_2024-09-01.csv',
1308
+ file='/Users/xigua/Downloads/万里马箱包推广1_营销概况_qwqw全站营销_2024-08-18_2024-09-01.csv',
1309
1309
  db_name='京东数据3',
1310
1310
  table_name='推广数据_全站营销',
1311
1311
  target_service='company',
@@ -1205,7 +1205,7 @@ class GroupBy:
1205
1205
  df.insert(loc=1, column='推广渠道', value='万相台无界版') # df中插入新列
1206
1206
  # df.insert(loc=2, column='营销场景', value='超级直播') # df中插入新列
1207
1207
  # df = df.loc[df['日期'].between(start_day, today)]
1208
- df_new = df.groupby(['日期', '推广渠道', '营销场景'], as_index=False).agg(
1208
+ df_new = df.groupby(['日期', '店铺名称', '推广渠道', '营销场景'], as_index=False).agg(
1209
1209
  **{
1210
1210
  '花费': ('花费', np.sum),
1211
1211
  '展现量': ('展现量', np.sum),
@@ -1264,7 +1264,7 @@ class GroupBy:
1264
1264
  )
1265
1265
  df.insert(loc=1, column='推广渠道', value='品销宝') # df中插入新列
1266
1266
  df.insert(loc=2, column='营销场景', value='品销宝') # df中插入新列
1267
- df_new = df.groupby(['日期', '推广渠道', '营销场景'], as_index=False).agg(
1267
+ df_new = df.groupby(['日期', '店铺名称', '推广渠道', '营销场景'], as_index=False).agg(
1268
1268
  **{
1269
1269
  '花费': ('花费', np.sum),
1270
1270
  '展现量': ('展现量', np.sum),
@@ -2107,12 +2107,6 @@ def data_aggregation(service_databases=[{}], months=1, is_juhe=True):
2107
2107
  '唯一主键': ['日期', '一级来源', '二级来源', '三级来源', '访客数'],
2108
2108
  '数据主体': sdq.dplyd(),
2109
2109
  },
2110
- # {
2111
- # '数据库名': '聚合数据',
2112
- # '集合名': '天猫_店铺来源_日数据_旧版',
2113
- # '唯一主键': ['日期', '一级来源', '二级来源', '三级来源'],
2114
- # '数据主体': sdq.dplyd_old(),
2115
- # },
2116
2110
  {
2117
2111
  '数据库名': '聚合数据',
2118
2112
  '集合名': '商品id编码表',
@@ -2185,18 +2179,18 @@ def data_aggregation(service_databases=[{}], months=1, is_juhe=True):
2185
2179
  '唯一主键': ['日期', '报表类型', '推广渠道', '营销场景', '花费'],
2186
2180
  '数据主体': sdq.pxb_zh(),
2187
2181
  },
2188
- # {
2189
- # '数据库名': '聚合数据',
2190
- # '集合名': '天猫店铺来源_手淘搜索', # 暂缺
2191
- # '唯一主键': ['日期', '关键词', '访客数'],
2192
- # '数据主体': sdq.tm_search(),
2193
- # },
2194
- # {
2195
- # '数据库名': '聚合数据',
2196
- # '集合名': '生意参谋_直播场次分析', # 暂缺
2197
- # '唯一主键': ['场次id'],
2198
- # '数据主体': sdq.zb_ccfx(),
2199
- # },
2182
+ {
2183
+ '数据库名': '聚合数据',
2184
+ '集合名': '天猫店铺来源_手淘搜索', # 暂缺
2185
+ '唯一主键': ['日期', '关键词', '访客数'],
2186
+ '数据主体': sdq.tm_search(),
2187
+ },
2188
+ {
2189
+ '数据库名': '聚合数据',
2190
+ '集合名': '生意参谋_直播场次分析', # 暂缺
2191
+ '唯一主键': ['场次id'],
2192
+ '数据主体': sdq.zb_ccfx(),
2193
+ },
2200
2194
  {
2201
2195
  '数据库名': '聚合数据',
2202
2196
  '集合名': '多店推广场景_按日聚合',
@@ -2232,7 +2226,7 @@ def data_aggregation(service_databases=[{}], months=1, is_juhe=True):
2232
2226
  service_database=service_database,
2233
2227
  )
2234
2228
  g.sp_index_datas = pd.DataFrame() # 重置,不然下个循环会继续刷入数据库
2235
- # # g.as_csv(df=df, filename=table_name + '.csv') # 导出 csv
2229
+ # g.as_csv(df=df, filename=table_name + '.csv') # 导出 csv
2236
2230
  if '日期' in df.columns.tolist():
2237
2231
  m.df_to_mysql(
2238
2232
  df=df,
@@ -98,6 +98,11 @@ class DataClean:
98
98
  '数据库名': '生意参谋3',
99
99
  '集合名称': '店铺流量来源构成',
100
100
  },
101
+ {
102
+ '文件简称': '爱库存_商品榜单_', # 文件名中包含的字符
103
+ '数据库名': '爱库存2',
104
+ '集合名称': '商品spu榜单',
105
+ },
101
106
  ]
102
107
  for root, dirs, files in os.walk(path, topdown=False):
103
108
  for name in files:
@@ -145,6 +150,13 @@ class DataClean:
145
150
  new_name = f'py_xg_{os.path.splitext(name)[0]}.csv'
146
151
  self.save_to_csv(df, root, new_name, encoding='utf-8_sig')
147
152
  os.remove(os.path.join(root, name))
153
+ elif name.endswith('.csv') and '爱库存_商品榜单_' in name:
154
+ df = pd.read_csv(os.path.join(root, name), encoding='utf-8_sig', header=0, na_filter=False)
155
+ if '店铺名称' not in df.columns.tolist():
156
+ df.insert(loc=1, column='店铺名称', value='爱库存平台') # df中插入新列
157
+ new_name = f'py_xg_{os.path.splitext(name)[0]}.csv'
158
+ self.save_to_csv(df, root, new_name, encoding='utf-8_sig')
159
+ os.remove(os.path.join(root, name))
148
160
 
149
161
  # 将数据传入 self.datas 等待更新进数据库
150
162
  if not db_name or not collection_name:
@@ -923,6 +935,9 @@ class DataClean:
923
935
  '商品类目属性' in name or '商品主图视频' in name or '商品sku属性' in name):
924
936
  t_path = os.path.join(self.source_path, '生意参谋', '商品属性')
925
937
  bib(t_path, _as_month=True)
938
+ elif name.endswith('.csv') and '爱库存_商品榜单_' in name:
939
+ t_path = os.path.join(self.source_path, '爱库存', 'spu商品榜单')
940
+ bib(t_path, _as_month=True)
926
941
 
927
942
  def move_dmp(self, path=None, is_except=[]):
928
943
  """ 达摩盘 """
@@ -1502,15 +1517,15 @@ def main(service_databases=None, is_mysql=False):
1502
1517
 
1503
1518
 
1504
1519
  if __name__ == '__main__':
1505
- main(
1506
- service_databases = [
1507
- {'company': 'mysql'},
1508
- # {'home_lx': 'mysql'},
1509
- # {'home_lx': 'mongodb'},
1510
- # {'nas': 'mysql'},
1511
- ],
1512
- is_mysql = False, # 清理聚合数据
1513
- )
1520
+ # main(
1521
+ # service_databases = [
1522
+ # {'company': 'mysql'},
1523
+ # # {'home_lx': 'mysql'},
1524
+ # # {'home_lx': 'mongodb'},
1525
+ # # {'nas': 'mysql'},
1526
+ # ],
1527
+ # is_mysql = False, # 清理聚合数据
1528
+ # )
1514
1529
 
1515
1530
  # c = DataClean(
1516
1531
  # path=upload_path, # 源文件目录,下载文件夹
@@ -1521,4 +1536,4 @@ if __name__ == '__main__':
1521
1536
  # c.move_tg_tm(is_except=['临时文件', ]) # 天猫,移到文件到原始文件夹
1522
1537
 
1523
1538
 
1524
- # test()
1539
+ test()
@@ -216,6 +216,7 @@ class AikuCun:
216
216
  today = datetime.date.today()
217
217
  for date_s in range(date_num):
218
218
  new_date = today - datetime.timedelta(days=date_s) # 会用作文件名
219
+ print(f'正在下载爱库存文件 {date_s}/{date_num}: {new_date}')
219
220
  str_date = str(new_date)[2:]
220
221
  wait = WebDriverWait(_driver, timeout=15) #
221
222
  elements = _driver.find_elements(
@@ -254,7 +255,7 @@ class AikuCun:
254
255
  '//button[@class="el-button el-button--primary el-button--small is-plain"]/span[contains(text(), "下载数据")]')
255
256
  _driver.execute_script("arguments[0].click();", elements[0]) # 点击
256
257
  time.sleep(5)
257
- self.clean_data(date=new_date)
258
+ self.clean_data(date=new_date) # 每下载一个文件,需要立即清洗数据
258
259
  _driver.quit()
259
260
 
260
261
  def clean_data(self, date):
@@ -275,6 +276,7 @@ class AikuCun:
275
276
  os.remove(os.path.join(root, name))
276
277
  continue
277
278
  df.insert(loc=0, column='日期', value=date) # df中插入新列
279
+ df.insert(loc=1, column='店铺名称', value='爱库存平台') # df中插入新列
278
280
  df.rename(columns={'spuId': 'spu_id'}, inplace=True)
279
281
  df['数据更新时间'] = pd.to_datetime(df['数据更新时间'], format='%Y-%m-%d %H:%M:%S', errors='ignore')
280
282
  # df['数据更新时间'] = df['数据更新时间'].apply(lambda x: re.sub(' ', ' ', str(x)) if x else x)
@@ -290,24 +292,24 @@ def akucun():
290
292
  akc.get_data(shop_name='aikucun', date_num=10) # 获取最近 N 天数据,0表示今天
291
293
  # akc.clean_data()
292
294
 
293
- # 新版 数据分类
294
- dp = aggregation.DatabaseUpdate(path=upload_path)
295
- dp.new_unzip(is_move=True)
296
- dp.cleaning(is_move=False, is_except=['临时文件']) # 清洗数据, 存入 self.datas, 不需要立即移除文件,仍保留文件到原始文件中
297
- # 将 self.datas 更新至数据库
298
- dp.upload_df(service_databases=[
299
- # {'home_lx': 'mongodb'},
300
- # {'home_lx': 'mysql'},
301
- {'company': 'mysql'},
302
- # {'nas': 'mysql'},
303
- ])
304
- # 数据分类
305
- c = data_clean.DataClean(path=upload_path, source_path=Source_Path)
306
- c.set_up_to_mogo = False # 不再使用 data_clean 更新数据库,改为 aggregation.py
307
- c.set_up_to_mysql = False # 不再使用 data_clean 更新数据库,改为 aggregation.py
308
- c.new_unzip(is_move=True, ) # 解压文件
309
- c.change_and_sort(is_except=['临时文件'])
310
- c.move_all(is_except=['临时文件']) # 移到文件到原始文件夹
295
+ # # 新版 数据分类
296
+ # dp = aggregation.DatabaseUpdate(path=upload_path)
297
+ # dp.new_unzip(is_move=True)
298
+ # dp.cleaning(is_move=False, is_except=['临时文件']) # 清洗数据, 存入 self.datas, 不需要立即移除文件,仍保留文件到原始文件中
299
+ # # 将 self.datas 更新至数据库
300
+ # dp.upload_df(service_databases=[
301
+ # # {'home_lx': 'mongodb'},
302
+ # # {'home_lx': 'mysql'},
303
+ # {'company': 'mysql'},
304
+ # # {'nas': 'mysql'},
305
+ # ])
306
+ # # 数据分类
307
+ # c = data_clean.DataClean(path=upload_path, source_path=Source_Path)
308
+ # c.set_up_to_mogo = False # 不再使用 data_clean 更新数据库,改为 aggregation.py
309
+ # c.set_up_to_mysql = False # 不再使用 data_clean 更新数据库,改为 aggregation.py
310
+ # c.new_unzip(is_move=True, ) # 解压文件
311
+ # c.change_and_sort(is_except=['临时文件'])
312
+ # c.move_all(is_except=['临时文件']) # 移到文件到原始文件夹
311
313
 
312
314
 
313
315
  class AikuCunNew:
@@ -359,7 +361,7 @@ class AikuCunNew:
359
361
 
360
362
  if __name__ == '__main__':
361
363
  pass
362
- # get_cookie_aikucun()
364
+ get_cookie_aikucun()
363
365
  akucun()
364
366
 
365
367
  # a = AikuCunNew(shop_name='aikucun')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 2.6.3
3
+ Version: 2.6.4
4
4
  Home-page: https://pypi.org/project/mdbsql
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -3,7 +3,7 @@
3
3
  from setuptools import setup, find_packages
4
4
 
5
5
  setup(name='mdbq',
6
- version='2.6.3',
6
+ version='2.6.4',
7
7
  author='xigua, ',
8
8
  author_email="2587125111@qq.com",
9
9
  url='https://pypi.org/project/mdbsql',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes