mdbq 2.2.9__tar.gz → 2.3.0__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 (50) hide show
  1. {mdbq-2.2.9 → mdbq-2.3.0}/PKG-INFO +1 -1
  2. mdbq-2.3.0/mdbq/req_post/__init__.py +4 -0
  3. mdbq-2.3.0/mdbq/req_post/req_tb.py +232 -0
  4. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq.egg-info/PKG-INFO +1 -1
  5. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq.egg-info/SOURCES.txt +2 -0
  6. {mdbq-2.2.9 → mdbq-2.3.0}/setup.py +1 -1
  7. {mdbq-2.2.9 → mdbq-2.3.0}/README.txt +0 -0
  8. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/__init__.py +0 -0
  9. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/__version__.py +0 -0
  10. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/aggregation/__init__.py +0 -0
  11. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/aggregation/aggregation.py +0 -0
  12. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/aggregation/df_types.py +0 -0
  13. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/aggregation/mysql_types.py +0 -0
  14. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/aggregation/optimize_data.py +0 -0
  15. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/aggregation/query_data.py +0 -0
  16. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/bdup/__init__.py +0 -0
  17. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/bdup/bdup.py +0 -0
  18. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/clean/__init__.py +0 -0
  19. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/clean/data_clean.py +0 -0
  20. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/company/__init__.py +0 -0
  21. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/company/copysh.py +0 -0
  22. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/company/home_sh.py +0 -0
  23. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/config/__init__.py +0 -0
  24. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/config/get_myconf.py +0 -0
  25. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/config/products.py +0 -0
  26. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/config/set_support.py +0 -0
  27. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/config/update_conf.py +0 -0
  28. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/dataframe/__init__.py +0 -0
  29. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/dataframe/converter.py +0 -0
  30. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/log/__init__.py +0 -0
  31. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/log/mylogger.py +0 -0
  32. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/mongo/__init__.py +0 -0
  33. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/mongo/mongo.py +0 -0
  34. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/mysql/__init__.py +0 -0
  35. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/mysql/mysql.py +0 -0
  36. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/mysql/s_query.py +0 -0
  37. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/mysql/year_month_day.py +0 -0
  38. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/other/__init__.py +0 -0
  39. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/other/porxy.py +0 -0
  40. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/other/pov_city.py +0 -0
  41. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/other/sku_picture.py +0 -0
  42. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/other/ua_sj.py +0 -0
  43. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/pbix/__init__.py +0 -0
  44. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/pbix/pbix_refresh.py +0 -0
  45. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/pbix/refresh_all.py +0 -0
  46. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/pbix/refresh_all_old.py +0 -0
  47. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq/spider/__init__.py +0 -0
  48. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq.egg-info/dependency_links.txt +0 -0
  49. {mdbq-2.2.9 → mdbq-2.3.0}/mdbq.egg-info/top_level.txt +0 -0
  50. {mdbq-2.2.9 → mdbq-2.3.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 2.2.9
3
+ Version: 2.3.0
4
4
  Home-page: https://pypi.org/project/mdbsql
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -0,0 +1,4 @@
1
+
2
+
3
+
4
+ # 配置文件
@@ -0,0 +1,232 @@
1
+ # -*- coding: UTF-8 –*-
2
+ import os
3
+ import time
4
+ import datetime
5
+ import pandas as pd
6
+ import warnings
7
+ import requests
8
+ from mdbq.other import ua_sj
9
+ from mdbq.config import get_myconf
10
+ from mdbq.mysql import mysql
11
+ import json
12
+ import socket
13
+ import platform
14
+ import random
15
+
16
+ warnings.filterwarnings('ignore')
17
+
18
+
19
+ class RequestData:
20
+ def __init__(self):
21
+ self.date = datetime.date.today().strftime('%Y%m%d')
22
+ self.url = None
23
+ self.headers = None
24
+ self.cookies = None
25
+ self.datas = []
26
+ self.path = None
27
+ self.filename = None
28
+ self.is_json_file = False
29
+
30
+ def request_data(self, date, url, headers, cookies, path, filename):
31
+ """ 活动预售页面 流量来源 """
32
+ # date = datetime.date.today().strftime('%Y%m%d')
33
+ # url = (f'https://sycm.taobao.com/datawar/v6/activity/detail/guide/chl/presale/online/v4.json?'
34
+ # f'dateRange={date}%7C{date}'
35
+ # f'&dateType=today'
36
+ # f'&pageSize=10'
37
+ # f'&page=1'
38
+ # f'&order=desc'
39
+ # f'&orderBy=frontPreheatUv' # 必传参数
40
+ # f'&activityId=94040472' # 关键,必传参数
41
+ # # f'&activityStatus=3'
42
+ # # f'&device=2'
43
+ # # f'&indexCode=frontPreheatUv%2CfrontPayByrCnt%2CfrontPayRate'
44
+ # # f'&_=1729079731795'
45
+ # # f'&token=7e94ba030'
46
+ # )
47
+ # headers = {
48
+ # "referer": "https://dmp.taobao.com/index_new.html",
49
+ # 'User-Agent': ua_sj.get_ua(),
50
+ # }
51
+ # cookies = {
52
+ # 'session': 't=c198527347800dafa75165f084784668; thw=cn; xlly_s=1; _tb_token_=rPWSGun4nUou9aKxviPg; _samesite_flag_=true; 3PcFlag=1729054801593; cookie2=130befc055eed2df29935197bd2b514b; sgcookie=E100aLOltfWHqLLH1qtyH3it%2BLrGH2v3MAnIBdSfu7xwjEpSyh101lblDVcj3zGpAOLv%2FXcrVNbT%2FN%2BI8KZeCoE4HBzHQk0ANtSqjOG5gIzdKamfirBxGWJyVEccitvvDZhK; unb=2210244713719; sn=%E4%B8%87%E9%87%8C%E9%A9%AC%E5%AE%98%E6%96%B9%E6%97%97%E8%88%B0%E5%BA%97%3A%E6%8E%A8%E5%B9%BF; uc1=cookie21=W5iHLLyFfoaZ&cookie14=UoYcCoAfJ7pSQA%3D%3D; csg=1e2bdb8a; _cc_=Vq8l%2BKCLiw%3D%3D; cancelledSubSites=empty; skt=f813f8478f7318f8; v=0; cna=8+iAHxeojXcCAXjsc5Mt+BAV; mtop_partitioned_detect=1; _m_h5_tk=88c56a84a93c1199f8abe086a132c7eb_1729068459392; _m_h5_tk_enc=4b0ed8316f46edae303547d3863982a4; XSRF-TOKEN=4ef3d151-14c4-445a-9249-595e9a24df75; JSESSIONID=9EE8C8DCF6162DCA2FE0187C29BF0B8A; tfstk=gyaEdSAx842sxMbj1f3rgEWrJ50LN2XbxzMSZ7VoOvDheWNubSerd_IKRlkzIRk3O76JzQqgCk9QZzGuzR3n2kMSdYuzw-51hZ_b9W3--t6flZ3LgJuxZBYHFAYiG40ZtLV_9W3J6C9lclVpUV2YVJ0uEVmiwj0kr00l_ccjZ4YnqexMIAhor4YoqVDiwjvkr80l_5DttHciSWVk7jihGd0FW1QAcqH0tA8kuIhKxg2JVH-emXiZncbekEC-TDk0tAWAnqwo4JoU5wJxTlV4BXyRke3n4kqm-zWV8VVYfJcaEt-rIozLzmaF3nH3JYeq-lWM840Kg7obf_xqCuVT7czFcQhTR74KcqbvKYZ_gzlzyTQa3W2Umm4HLgz6efAQOzEeE3on6fkf_1ySvoccWpB-m3K-jqhZh6GB23nnhfkf_1-J2cDo_x1IO; isg=BLm5J8RI-qdgDKdAgF_DSgcFyCOTxq14BgKdB9vjgONeYsD0IReUSUT05GaUWkWw'}
53
+
54
+ self.date = date
55
+ self.url = url
56
+ self.headers = headers
57
+ self.cookies = cookies
58
+ self.path = path
59
+ self.filename = filename
60
+ result = requests.get(
61
+ self.url,
62
+ headers=self.headers,
63
+ cookies=self.cookies,
64
+ )
65
+ m_data = json.loads(result.text)
66
+ update_time = m_data['data']['updateTime']
67
+ # pt_data = data['data']['data'][0] # 平台流量
68
+ # gg_data = data['data']['data'][1] # 广告流量
69
+ for all_data in m_data['data']['data']:
70
+ self.datas.append({
71
+ 'frontPayByrCnt': all_data['frontPayByrCnt']['value'],
72
+ '一级标识id': all_data['pageId']['value'],
73
+ '二级标识id': '',
74
+ '三级标识id': '',
75
+ '一级来源': all_data['pageName']['value'],
76
+ '二级来源': '',
77
+ '三级来源': '',
78
+ '活动商品访客数(定金期)': all_data['frontPreheatUv']['value'],
79
+ '定金支付买家数': all_data['frontPayByrCnt']['value'],
80
+ '定金支付转化率': all_data['frontPayRate']['value'],
81
+ '日期': all_data['statDateStr']['value'],
82
+ '更新时间': update_time,
83
+ '促销活动': '2024双11预售',
84
+ })
85
+ if 'children' not in all_data.keys(): # 这一句有点多余,因为一级来源必定细分有二级来源
86
+ continue
87
+ for children_data in all_data['children']:
88
+ one_source_id = children_data['pPageId']['value']
89
+ one_source_name = children_data['pPageName']['value']
90
+ self.datas.append(
91
+ {
92
+ 'frontPayByrCnt': children_data['frontPayByrCnt']['value'],
93
+ '一级标识id': children_data['pPageId']['value'],
94
+ '二级标识id': children_data['pageId']['value'],
95
+ '三级标识id': '',
96
+ '一级来源': children_data['pPageName']['value'],
97
+ '二级来源': children_data['pageName']['value'],
98
+ '三级来源': '',
99
+ '活动商品访客数(定金期)': children_data['frontPreheatUv']['value'],
100
+ '定金支付买家数': children_data['frontPayByrCnt']['value'],
101
+ '定金支付转化率': children_data['frontPayRate']['value'],
102
+ '日期': children_data['statDateStr']['value'],
103
+ '更新时间': update_time,
104
+ '促销活动': '2024双11预售',
105
+ }
106
+ )
107
+ # print(children_data['children'])
108
+ # print(children_data)
109
+ if 'children' not in children_data.keys(): # 部分二级来源没有细分的三级来源,因为需要跳过 children 字段
110
+ continue
111
+ for children_children_data in children_data['children']:
112
+ # print(children_children_data)
113
+ # print(one_source_name)
114
+ self.datas.append(
115
+ {
116
+ 'frontPayByrCnt': children_children_data['frontPayByrCnt']['value'],
117
+ '一级标识id': one_source_id,
118
+ '二级标识id': children_children_data['pPageId']['value'],
119
+ '三级标识id': children_children_data['pageId']['value'],
120
+ '一级来源': one_source_name,
121
+ '二级来源': children_children_data['pPageName']['value'],
122
+ '三级来源': children_children_data['pageName']['value'],
123
+ '活动商品访客数(定金期)': children_children_data['frontPreheatUv']['value'],
124
+ '定金支付买家数': children_children_data['frontPayByrCnt']['value'],
125
+ '定金支付转化率': children_children_data['frontPayRate']['value'],
126
+ '日期': children_children_data['statDateStr']['value'],
127
+ '更新时间': update_time,
128
+ '促销活动': '2024双11预售',
129
+ }
130
+ )
131
+ for item in self.datas:
132
+ if item['日期'] != '':
133
+ item.update({'日期': f'{item['日期'][0:4]}-{item['日期'][4:6]}-{item['日期'][6:8]}'})
134
+ if self.is_json_file:
135
+ with open(os.path.join(self.path, f'{self.filename}.json'), 'w') as f:
136
+ json.dump(self.datas, f, ensure_ascii=False, sort_keys=True, indent=4)
137
+
138
+ def request_jd(self, date, url, headers, cookies, path, filename):
139
+ """ 京东 """
140
+ self.date = date
141
+ self.url = url
142
+ self.headers = headers
143
+ self.cookies = cookies
144
+ self.path = path
145
+ self.filename = filename
146
+ result = requests.post(
147
+ url,
148
+ headers=headers,
149
+ cookies=cookies,
150
+ )
151
+ print(result.text)
152
+
153
+
154
+ def tb_data(service_databases=[], db_name=None, table_name=None):
155
+ """ 2024双11预售实时流量分析 """
156
+ date = datetime.date.today().strftime('%Y%m%d')
157
+ url = (f'https://sycm.taobao.com/datawar/v6/activity/detail/guide/chl/presale/online/v4.json?'
158
+ f'dateRange={date}%7C{date}'
159
+ f'&dateType=today'
160
+ f'&pageSize=10'
161
+ f'&page=1'
162
+ f'&order=desc'
163
+ f'&orderBy=frontPreheatUv' # 必传参数
164
+ f'&activityId=94040472' # 关键,必传参数
165
+ # f'&activityStatus=3'
166
+ # f'&device=2'
167
+ # f'&indexCode=frontPreheatUv%2CfrontPayByrCnt%2CfrontPayRate'
168
+ # f'&_=1729079731795'
169
+ # f'&token=7e94ba030'
170
+ )
171
+ headers = {
172
+ "referer": "https://dmp.taobao.com/index_new.html",
173
+ 'User-Agent': ua_sj.get_ua(),
174
+ }
175
+ cookies = {
176
+ 'session': 't=c198527347800dafa75165f084784668; thw=cn; xlly_s=1; _tb_token_=rPWSGun4nUou9aKxviPg; _samesite_flag_=true; 3PcFlag=1729054801593; cookie2=130befc055eed2df29935197bd2b514b; sgcookie=E100aLOltfWHqLLH1qtyH3it%2BLrGH2v3MAnIBdSfu7xwjEpSyh101lblDVcj3zGpAOLv%2FXcrVNbT%2FN%2BI8KZeCoE4HBzHQk0ANtSqjOG5gIzdKamfirBxGWJyVEccitvvDZhK; unb=2210244713719; sn=%E4%B8%87%E9%87%8C%E9%A9%AC%E5%AE%98%E6%96%B9%E6%97%97%E8%88%B0%E5%BA%97%3A%E6%8E%A8%E5%B9%BF; uc1=cookie21=W5iHLLyFfoaZ&cookie14=UoYcCoAfJ7pSQA%3D%3D; csg=1e2bdb8a; _cc_=Vq8l%2BKCLiw%3D%3D; cancelledSubSites=empty; skt=f813f8478f7318f8; v=0; cna=8+iAHxeojXcCAXjsc5Mt+BAV; mtop_partitioned_detect=1; _m_h5_tk=88c56a84a93c1199f8abe086a132c7eb_1729068459392; _m_h5_tk_enc=4b0ed8316f46edae303547d3863982a4; XSRF-TOKEN=4ef3d151-14c4-445a-9249-595e9a24df75; JSESSIONID=9EE8C8DCF6162DCA2FE0187C29BF0B8A; tfstk=gyaEdSAx842sxMbj1f3rgEWrJ50LN2XbxzMSZ7VoOvDheWNubSerd_IKRlkzIRk3O76JzQqgCk9QZzGuzR3n2kMSdYuzw-51hZ_b9W3--t6flZ3LgJuxZBYHFAYiG40ZtLV_9W3J6C9lclVpUV2YVJ0uEVmiwj0kr00l_ccjZ4YnqexMIAhor4YoqVDiwjvkr80l_5DttHciSWVk7jihGd0FW1QAcqH0tA8kuIhKxg2JVH-emXiZncbekEC-TDk0tAWAnqwo4JoU5wJxTlV4BXyRke3n4kqm-zWV8VVYfJcaEt-rIozLzmaF3nH3JYeq-lWM840Kg7obf_xqCuVT7czFcQhTR74KcqbvKYZ_gzlzyTQa3W2Umm4HLgz6efAQOzEeE3on6fkf_1ySvoccWpB-m3K-jqhZh6GB23nnhfkf_1-J2cDo_x1IO; isg=BLm5J8RI-qdgDKdAgF_DSgcFyCOTxq14BgKdB9vjgONeYsD0IReUSUT05GaUWkWw'}
177
+ path = '/Users/xigua/Downloads'
178
+ filename = 'test'
179
+ r = RequestData()
180
+ r.is_json_file = False
181
+ r.request_data(
182
+ date=date,
183
+ url=url,
184
+ headers=headers,
185
+ cookies=cookies,
186
+ path=path,
187
+ filename=filename,
188
+ )
189
+ # print(r.datas)
190
+ df = pd.DataFrame(r.datas)
191
+ # df.to_csv(os.path.join(path, 'test.csv'), index=False, header=True, encoding='utf-8_sig')
192
+
193
+ if not service_databases:
194
+ return
195
+ if not db_name or not table_name:
196
+ print(f'尚未指定 db_name/table_name 参数')
197
+ return
198
+ for dt in service_databases:
199
+ for service_name, database in dt.items():
200
+ username, password, host, port = get_myconf.select_config_values(
201
+ target_service=service_name,
202
+ database=database,
203
+ )
204
+ m = mysql.MysqlUpload(
205
+ username=username,
206
+ password=password,
207
+ host=host,
208
+ port=port,
209
+ )
210
+ m.df_to_mysql(
211
+ df=df,
212
+ db_name=db_name,
213
+ table_name=table_name,
214
+ move_insert=False, # 先删除,再插入
215
+ df_sql=False, # 值为 True 时使用 df.to_sql 函数上传整个表, 不会排重
216
+ drop_duplicates=False, # 值为 True 时检查重复数据再插入,反之直接上传,会比较慢
217
+ filename=None, # 用来追踪处理进度
218
+ service_database=dt, # 字典
219
+ )
220
+
221
+
222
+ def company_run():
223
+ if platform.system() == 'Windows' and socket.gethostname() == 'company':
224
+ while True:
225
+ tb_data(service_databases=[{'company': 'mysql'}], db_name='生意参谋2',
226
+ table_name='2024双11预售实时流量分析')
227
+ time.sleep(random.uniform(1500, 2000))
228
+
229
+
230
+ if __name__ == '__main__':
231
+ company_run()
232
+ tb_data(service_databases=[{'company': 'mysql'}], db_name='生意参谋2', table_name='2024双11预售实时流量分析')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 2.2.9
3
+ Version: 2.3.0
4
4
  Home-page: https://pypi.org/project/mdbsql
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -43,4 +43,6 @@ mdbq/pbix/__init__.py
43
43
  mdbq/pbix/pbix_refresh.py
44
44
  mdbq/pbix/refresh_all.py
45
45
  mdbq/pbix/refresh_all_old.py
46
+ mdbq/req_post/__init__.py
47
+ mdbq/req_post/req_tb.py
46
48
  mdbq/spider/__init__.py
@@ -3,7 +3,7 @@
3
3
  from setuptools import setup, find_packages
4
4
 
5
5
  setup(name='mdbq',
6
- version='2.2.9',
6
+ version='2.3.0',
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