mdbq 2.4.7__py3-none-any.whl → 2.4.9__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/aggregation/query_data.py +240 -122
- mdbq/company/copysh.py +1 -1
- {mdbq-2.4.7.dist-info → mdbq-2.4.9.dist-info}/METADATA +1 -1
- {mdbq-2.4.7.dist-info → mdbq-2.4.9.dist-info}/RECORD +6 -6
- {mdbq-2.4.7.dist-info → mdbq-2.4.9.dist-info}/WHEEL +0 -0
- {mdbq-2.4.7.dist-info → mdbq-2.4.9.dist-info}/top_level.txt +0 -0
mdbq/aggregation/query_data.py
CHANGED
@@ -770,7 +770,11 @@ class MysqlDatasQuery:
|
|
770
770
|
df_dmp.sort_values('日期', ascending=True, ignore_index=True, inplace=True)
|
771
771
|
df_dmp.drop_duplicates(subset=['日期', '人群id', '消耗(元)'], keep='last', inplace=True, ignore_index=True)
|
772
772
|
df = pd.merge(df_dmp, df_crowd, left_on=['人群id'], right_on=['人群id'], how='left')
|
773
|
+
# 清除一些不必要的字符
|
774
|
+
df['用户年龄'] = df['用户年龄'].apply(lambda x: '~'.join(re.findall(r'^(\d+).*-(\d+)岁$', str(x))[0]) if '岁' in str(x) else x)
|
775
|
+
df['消费能力等级'] = df['消费能力等级'].apply(lambda x: f'L{''.join(re.findall(r'(\d)', str(x)))}' if '购买力' in str(x) else x)
|
773
776
|
# df.to_csv('/Users/xigua/Downloads/test3.csv', index=False, header=True, encoding='utf-8_sig')
|
777
|
+
# breakpoint()
|
774
778
|
return df
|
775
779
|
|
776
780
|
|
@@ -920,6 +924,7 @@ class GroupBy:
|
|
920
924
|
], keep='last', inplace=True, ignore_index=True)
|
921
925
|
return df
|
922
926
|
elif '天猫_人群报表' in table_name and '达摩盘' not in table_name:
|
927
|
+
""" 天猫推广人群报表独立生成消费力、年龄层、分类等特征,不依赖于达摩盘数据表 """
|
923
928
|
df.rename(columns={
|
924
929
|
'场景名字': '营销场景',
|
925
930
|
'主体id': '商品id',
|
@@ -1002,8 +1007,14 @@ class GroupBy:
|
|
1002
1007
|
# 下面是添加人群 AIPL 分类
|
1003
1008
|
dir_file = f'\\\\192.168.1.198\\时尚事业部\\01.运营部\\0-电商周报-每周五更新\\分类配置文件.xlsx'
|
1004
1009
|
dir_file2 = '/Volumes/时尚事业部/01.运营部/0-电商周报-每周五更新/分类配置文件.xlsx'
|
1010
|
+
if platform.system() == 'Windows':
|
1011
|
+
dir_file3 = 'C:\\同步空间\\BaiduSyncdisk\\原始文件2\\分类配置文件.xlsx'
|
1012
|
+
else:
|
1013
|
+
dir_file3 = '/Users/xigua/数据中心/原始文件2/分类配置文件.xlsx'
|
1005
1014
|
if not os.path.isfile(dir_file):
|
1006
1015
|
dir_file = dir_file2
|
1016
|
+
if not os.path.isfile(dir_file):
|
1017
|
+
dir_file = dir_file3
|
1007
1018
|
if os.path.isfile(dir_file):
|
1008
1019
|
df_fl = pd.read_excel(dir_file, sheet_name='人群分类', header=0)
|
1009
1020
|
df_fl = df_fl[['人群名字', '人群分类']]
|
@@ -1012,12 +1023,22 @@ class GroupBy:
|
|
1012
1023
|
df['人群分类'].fillna('', inplace=True)
|
1013
1024
|
if '人群分类' in df.columns.tolist():
|
1014
1025
|
# 这行决定了,从文件中读取的分类信息优先级高于内部函数的分类规则
|
1026
|
+
# 这个 lambda 适配人群名字中带有特定标识的分类,强匹配
|
1015
1027
|
df['人群分类'] = df.apply(
|
1016
1028
|
lambda x: self.set_crowd(keyword=str(x['人群名字']), as_file=False) if x['人群分类'] == ''
|
1017
1029
|
else x['人群分类'], axis=1
|
1018
1030
|
)
|
1031
|
+
# 这个 lambda 适配人群名字中聚类的特征字符,弱匹配
|
1032
|
+
df['人群分类'] = df.apply(
|
1033
|
+
lambda x: self.set_crowd2(keyword=str(x['人群名字']), as_file=False) if x['人群分类'] == ''
|
1034
|
+
else x['人群分类'], axis=1
|
1035
|
+
)
|
1019
1036
|
else:
|
1020
1037
|
df['人群分类'] = df['人群名字'].apply(lambda x: self.set_crowd(keyword=str(x), as_file=False))
|
1038
|
+
df['人群分类'] = df.apply(
|
1039
|
+
lambda x: self.set_crowd2(keyword=str(x['人群名字']), as_file=False) if x['人群分类'] == ''
|
1040
|
+
else x['人群分类'], axis=1
|
1041
|
+
)
|
1021
1042
|
df['人群分类'] = df['人群分类'].apply(lambda x: str(x).upper() if x else x)
|
1022
1043
|
# df.to_csv('/Users/xigua/Downloads/test_人群分类.csv', index=False, header=True, encoding='utf-8_sig')
|
1023
1044
|
# breakpoint()
|
@@ -1071,7 +1092,7 @@ class GroupBy:
|
|
1071
1092
|
dir_file = dir_file2
|
1072
1093
|
if os.path.isfile(dir_file):
|
1073
1094
|
df_fl = pd.read_excel(dir_file, sheet_name='关键词分类', header=0)
|
1074
|
-
df_fl.rename(columns={'分类1': '词分类'}, inplace=True)
|
1095
|
+
# df_fl.rename(columns={'分类1': '词分类'}, inplace=True)
|
1075
1096
|
df_fl = df_fl[['关键词', '词分类']]
|
1076
1097
|
# 合并并获取词分类信息
|
1077
1098
|
df = pd.merge(df, df_fl, left_on=['词名字/词包名字'], right_on=['关键词'], how='left')
|
@@ -1678,6 +1699,103 @@ class GroupBy:
|
|
1678
1699
|
if not is_res:
|
1679
1700
|
return ''
|
1680
1701
|
|
1702
|
+
def set_crowd2(self, keyword, as_file=False):
|
1703
|
+
""" 推广人群报表,人群分类, """
|
1704
|
+
datas = [
|
1705
|
+
{
|
1706
|
+
'类别': 'A',
|
1707
|
+
'值': [
|
1708
|
+
'相似宝贝',
|
1709
|
+
'相似店铺',
|
1710
|
+
'类目',
|
1711
|
+
'88VIP',
|
1712
|
+
'拉新',
|
1713
|
+
'潮流',
|
1714
|
+
'会场',
|
1715
|
+
'意向',
|
1716
|
+
'>>', # 系统推荐的搜索相关人群
|
1717
|
+
'关键词:', # 系统推荐的搜索相关人群
|
1718
|
+
'关键词_', # 自建的搜索相关人群
|
1719
|
+
'扩展',
|
1720
|
+
'敏感人群',
|
1721
|
+
'尝鲜',
|
1722
|
+
'小二推荐',
|
1723
|
+
'竞争',
|
1724
|
+
'资深',
|
1725
|
+
'女王节',
|
1726
|
+
'本行业',
|
1727
|
+
'618',
|
1728
|
+
'包包树',
|
1729
|
+
'迪桑娜',
|
1730
|
+
'菲安妮',
|
1731
|
+
'卡思乐',
|
1732
|
+
'场景词',
|
1733
|
+
'竞对',
|
1734
|
+
'精选',
|
1735
|
+
'发现',
|
1736
|
+
'行业mvp'
|
1737
|
+
'特征继承',
|
1738
|
+
'机会',
|
1739
|
+
'推荐',
|
1740
|
+
'智能定向',
|
1741
|
+
]
|
1742
|
+
},
|
1743
|
+
{
|
1744
|
+
'类别': 'I',
|
1745
|
+
'值': [
|
1746
|
+
'行动',
|
1747
|
+
'收加',
|
1748
|
+
'收藏',
|
1749
|
+
'加购',
|
1750
|
+
'促首购',
|
1751
|
+
'店铺优惠券',
|
1752
|
+
'高转化',
|
1753
|
+
'认知',
|
1754
|
+
'喜欢我', # 系统推荐宝贝/店铺访问相关人群
|
1755
|
+
'未购买',
|
1756
|
+
'种草',
|
1757
|
+
'兴趣',
|
1758
|
+
'本店',
|
1759
|
+
'领券',
|
1760
|
+
]
|
1761
|
+
},
|
1762
|
+
{
|
1763
|
+
'类别': 'P',
|
1764
|
+
'值': [
|
1765
|
+
'万里马',
|
1766
|
+
'购买',
|
1767
|
+
'已购',
|
1768
|
+
'促复购'
|
1769
|
+
'店铺会员',
|
1770
|
+
'店铺粉丝',
|
1771
|
+
'转化',
|
1772
|
+
]
|
1773
|
+
},
|
1774
|
+
{
|
1775
|
+
'类别': 'L',
|
1776
|
+
'值': [
|
1777
|
+
'L人群',
|
1778
|
+
]
|
1779
|
+
},
|
1780
|
+
]
|
1781
|
+
if as_file:
|
1782
|
+
with open(os.path.join(self.output, f'分类配置_推广人群分类_函数内置规则.json'), 'w') as f:
|
1783
|
+
json.dump(datas, f, ensure_ascii=False, sort_keys=False, indent=4)
|
1784
|
+
breakpoint()
|
1785
|
+
result = ''
|
1786
|
+
res = []
|
1787
|
+
is_continue = False
|
1788
|
+
for data in datas:
|
1789
|
+
for item in data['值']:
|
1790
|
+
res = re.findall(item, str(keyword), re.IGNORECASE)
|
1791
|
+
if res:
|
1792
|
+
result = data['类别']
|
1793
|
+
is_continue = True
|
1794
|
+
break
|
1795
|
+
if is_continue:
|
1796
|
+
break
|
1797
|
+
return result
|
1798
|
+
|
1681
1799
|
# @try_except
|
1682
1800
|
def performance(self, bb_tg=True):
|
1683
1801
|
# print(self.data_tgyj)
|
@@ -1946,126 +2064,126 @@ def data_aggregation(service_databases=[{}], months=1, is_juhe=True):
|
|
1946
2064
|
|
1947
2065
|
# 从数据库中获取数据, 返回包含 df 数据的字典
|
1948
2066
|
data_dict = [
|
1949
|
-
{
|
1950
|
-
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
},
|
1955
|
-
{
|
1956
|
-
|
1957
|
-
|
1958
|
-
|
1959
|
-
|
1960
|
-
},
|
1961
|
-
{
|
1962
|
-
|
1963
|
-
|
1964
|
-
|
1965
|
-
|
1966
|
-
},
|
1967
|
-
{
|
1968
|
-
|
1969
|
-
|
1970
|
-
|
1971
|
-
|
1972
|
-
},
|
1973
|
-
{
|
1974
|
-
|
1975
|
-
|
1976
|
-
|
1977
|
-
|
1978
|
-
},
|
1979
|
-
{
|
1980
|
-
|
1981
|
-
|
1982
|
-
|
1983
|
-
|
1984
|
-
},
|
1985
|
-
{
|
1986
|
-
|
1987
|
-
|
1988
|
-
|
1989
|
-
|
1990
|
-
},
|
1991
|
-
{
|
1992
|
-
|
1993
|
-
|
1994
|
-
|
1995
|
-
|
1996
|
-
},
|
1997
|
-
{
|
1998
|
-
|
1999
|
-
|
2000
|
-
|
2001
|
-
|
2002
|
-
},
|
2003
|
-
{
|
2004
|
-
|
2005
|
-
|
2006
|
-
|
2007
|
-
|
2008
|
-
},
|
2009
|
-
{
|
2010
|
-
|
2011
|
-
|
2012
|
-
|
2013
|
-
|
2014
|
-
},
|
2015
|
-
{
|
2016
|
-
|
2017
|
-
|
2018
|
-
|
2019
|
-
|
2020
|
-
},
|
2021
|
-
{
|
2022
|
-
|
2023
|
-
|
2024
|
-
|
2025
|
-
|
2026
|
-
},
|
2027
|
-
{
|
2028
|
-
|
2029
|
-
|
2030
|
-
|
2031
|
-
|
2032
|
-
},
|
2033
|
-
{
|
2034
|
-
|
2035
|
-
|
2036
|
-
|
2037
|
-
|
2038
|
-
},
|
2039
|
-
{
|
2040
|
-
|
2041
|
-
|
2042
|
-
|
2043
|
-
|
2044
|
-
},
|
2045
|
-
{
|
2046
|
-
|
2047
|
-
|
2048
|
-
|
2049
|
-
|
2050
|
-
},
|
2051
|
-
{
|
2052
|
-
|
2053
|
-
|
2054
|
-
|
2055
|
-
|
2056
|
-
},
|
2057
|
-
{
|
2058
|
-
|
2059
|
-
|
2060
|
-
|
2061
|
-
|
2062
|
-
},
|
2063
|
-
{
|
2064
|
-
|
2065
|
-
|
2066
|
-
|
2067
|
-
|
2068
|
-
},
|
2067
|
+
# {
|
2068
|
+
# '数据库名': '聚合数据', # 清洗完回传的目的地数据库
|
2069
|
+
# '集合名': '天猫_主体报表', # 清洗完回传的数据表名
|
2070
|
+
# '唯一主键': ['日期', '推广渠道', '营销场景', '商品id', '花费'],
|
2071
|
+
# '数据主体': sdq.tg_wxt(),
|
2072
|
+
# },
|
2073
|
+
# {
|
2074
|
+
# '数据库名': '聚合数据',
|
2075
|
+
# '集合名': '天猫生意经_宝贝指标',
|
2076
|
+
# '唯一主键': ['日期', '宝贝id'], # 不能加其他字段做主键,比如销售额,是变动的,不是唯一的
|
2077
|
+
# '数据主体': sdq.syj(),
|
2078
|
+
# },
|
2079
|
+
# {
|
2080
|
+
# '数据库名': '聚合数据',
|
2081
|
+
# '集合名': '天猫_店铺来源_日数据',
|
2082
|
+
# '唯一主键': ['日期', '一级来源', '二级来源', '三级来源', '访客数'],
|
2083
|
+
# '数据主体': sdq.dplyd(),
|
2084
|
+
# },
|
2085
|
+
# {
|
2086
|
+
# '数据库名': '聚合数据',
|
2087
|
+
# '集合名': '天猫_店铺来源_日数据_旧版',
|
2088
|
+
# '唯一主键': ['日期', '一级来源', '二级来源', '三级来源'],
|
2089
|
+
# '数据主体': sdq.dplyd_old(),
|
2090
|
+
# },
|
2091
|
+
# {
|
2092
|
+
# '数据库名': '聚合数据',
|
2093
|
+
# '集合名': '商品id编码表',
|
2094
|
+
# '唯一主键': ['宝贝id'],
|
2095
|
+
# '数据主体': sdq.idbm(),
|
2096
|
+
# },
|
2097
|
+
# {
|
2098
|
+
# '数据库名': '聚合数据',
|
2099
|
+
# '集合名': '商品id图片对照表',
|
2100
|
+
# '唯一主键': ['商品id'],
|
2101
|
+
# '数据主体': sdq.sp_picture(),
|
2102
|
+
# },
|
2103
|
+
# {
|
2104
|
+
# '数据库名': '聚合数据',
|
2105
|
+
# '集合名': '商品成本',
|
2106
|
+
# '唯一主键': ['款号'],
|
2107
|
+
# '数据主体': sdq.sp_cost(),
|
2108
|
+
# },
|
2109
|
+
# {
|
2110
|
+
# '数据库名': '聚合数据',
|
2111
|
+
# '集合名': '京东_京准通',
|
2112
|
+
# '唯一主键': ['日期', '产品线', '触发sku id', '跟单sku id', '花费', ],
|
2113
|
+
# '数据主体': sdq.jdjzt(),
|
2114
|
+
# },
|
2115
|
+
# {
|
2116
|
+
# '数据库名': '聚合数据',
|
2117
|
+
# '集合名': '京东_京准通_全站营销',
|
2118
|
+
# '唯一主键': ['日期', '产品线', '花费'],
|
2119
|
+
# '数据主体': sdq.jdqzyx(),
|
2120
|
+
# },
|
2121
|
+
# {
|
2122
|
+
# '数据库名': '聚合数据',
|
2123
|
+
# '集合名': '京东_sku_商品明细',
|
2124
|
+
# '唯一主键': ['日期', '商品id', '成交单量'],
|
2125
|
+
# '数据主体': sdq.sku_sales(),
|
2126
|
+
# },
|
2127
|
+
# {
|
2128
|
+
# '数据库名': '聚合数据',
|
2129
|
+
# '集合名': '京东_spu_商品明细',
|
2130
|
+
# '唯一主键': ['日期', '商品id', '成交单量'],
|
2131
|
+
# '数据主体': sdq.spu_sales(),
|
2132
|
+
# },
|
2133
|
+
# {
|
2134
|
+
# '数据库名': '聚合数据',
|
2135
|
+
# '集合名': '天猫_人群报表',
|
2136
|
+
# '唯一主键': ['日期', '推广渠道', '营销场景', '商品id', '花费', '人群名字'],
|
2137
|
+
# '数据主体': sdq.tg_rqbb(),
|
2138
|
+
# },
|
2139
|
+
# {
|
2140
|
+
# '数据库名': '聚合数据',
|
2141
|
+
# '集合名': '天猫_关键词报表',
|
2142
|
+
# '唯一主键': ['日期', '推广渠道', '营销场景', '商品id', '花费', '词类型', '词名字/词包名字',],
|
2143
|
+
# '数据主体': sdq.tg_gjc(),
|
2144
|
+
# },
|
2145
|
+
# {
|
2146
|
+
# '数据库名': '聚合数据',
|
2147
|
+
# '集合名': '天猫_超级直播',
|
2148
|
+
# '唯一主键': ['日期', '推广渠道', '营销场景', '花费'],
|
2149
|
+
# '数据主体': sdq.tg_cjzb(),
|
2150
|
+
# },
|
2151
|
+
# {
|
2152
|
+
# '数据库名': '聚合数据',
|
2153
|
+
# '集合名': '京东_关键词报表',
|
2154
|
+
# '唯一主键': ['日期', '产品线', '搜索词', '关键词', '展现数', '花费'],
|
2155
|
+
# '数据主体': sdq.jd_gjc(),
|
2156
|
+
# },
|
2157
|
+
# {
|
2158
|
+
# '数据库名': '聚合数据',
|
2159
|
+
# '集合名': '天猫_品销宝账户报表',
|
2160
|
+
# '唯一主键': ['日期', '报表类型', '推广渠道', '营销场景', '花费'],
|
2161
|
+
# '数据主体': sdq.pxb_zh(),
|
2162
|
+
# },
|
2163
|
+
# {
|
2164
|
+
# '数据库名': '聚合数据',
|
2165
|
+
# '集合名': '天猫店铺来源_手淘搜索',
|
2166
|
+
# '唯一主键': ['日期', '关键词', '访客数'],
|
2167
|
+
# '数据主体': sdq.tm_search(),
|
2168
|
+
# },
|
2169
|
+
# {
|
2170
|
+
# '数据库名': '聚合数据',
|
2171
|
+
# '集合名': '生意参谋_直播场次分析',
|
2172
|
+
# '唯一主键': ['场次id'],
|
2173
|
+
# '数据主体': sdq.zb_ccfx(),
|
2174
|
+
# },
|
2175
|
+
# {
|
2176
|
+
# '数据库名': '聚合数据',
|
2177
|
+
# '集合名': '多店推广场景_按日聚合',
|
2178
|
+
# '唯一主键': [],
|
2179
|
+
# '数据主体': sdq.tg_by_day(),
|
2180
|
+
# },
|
2181
|
+
# {
|
2182
|
+
# '数据库名': '聚合数据',
|
2183
|
+
# '集合名': '爱库存_商品spu榜单',
|
2184
|
+
# '唯一主键': [],
|
2185
|
+
# '数据主体': sdq.aikucun_bd_spu(),
|
2186
|
+
# },
|
2069
2187
|
{
|
2070
2188
|
'数据库名': '聚合数据',
|
2071
2189
|
'集合名': '达摩盘_人群报表',
|
@@ -2167,6 +2285,6 @@ def main():
|
|
2167
2285
|
|
2168
2286
|
|
2169
2287
|
if __name__ == '__main__':
|
2170
|
-
data_aggregation(service_databases=[{'company': 'mysql'}], months=
|
2288
|
+
data_aggregation(service_databases=[{'company': 'mysql'}], months=24, is_juhe=False) # 正常的聚合所有数据
|
2171
2289
|
# data_aggregation_one(service_databases=[{'company': 'mysql'}], months=1) # 单独聚合某一个数据库,具体库进函数编辑
|
2172
2290
|
# optimize_data.op_data(service_databases=[{'company': 'mysql'}], days=3650) # 立即启动对聚合数据的清理工作
|
mdbq/company/copysh.py
CHANGED
@@ -269,7 +269,7 @@ class TbFiles:
|
|
269
269
|
dir_files = f'\\\\192.168.1.198\\时尚事业部\\01.运营部\\0-电商周报-每周五更新'
|
270
270
|
files = os.listdir(dir_files)
|
271
271
|
for file in files:
|
272
|
-
if file.endswith('.xlsx') and '0-WLM_运营周报'
|
272
|
+
if file.endswith('.xlsx') and file.startswith('0-WLM_运营周报') and '~' not in file and 'baidu' not in file:
|
273
273
|
excel_file = os.path.join(dir_files, file)
|
274
274
|
r.refresh_excel(file=excel_file)
|
275
275
|
|
@@ -5,13 +5,13 @@ mdbq/aggregation/aggregation.py,sha256=nPp5fOLktxejNEak3SyTnKLjwzK1l2xjbV45X-I4L
|
|
5
5
|
mdbq/aggregation/df_types.py,sha256=U9i3q2eRPTDY8qAPTw7irzu-Tlg4CIySW9uYro81wdk,8125
|
6
6
|
mdbq/aggregation/mysql_types.py,sha256=DQYROALDiwjJzjhaJfIIdnsrNs11i5BORlj_v6bp67Y,11062
|
7
7
|
mdbq/aggregation/optimize_data.py,sha256=Wis40oL04M7E1pkvgNPjyVFAUe-zgjimjIVAikxYY8Y,4418
|
8
|
-
mdbq/aggregation/query_data.py,sha256=
|
8
|
+
mdbq/aggregation/query_data.py,sha256=65ulg_i5bNb4RXjtBCDKgRSKXLJJd9bb16j0EbdFVXo,103875
|
9
9
|
mdbq/bdup/__init__.py,sha256=AkhsGk81SkG1c8FqDH5tRq-8MZmFobVbN60DTyukYTY,28
|
10
10
|
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=ucfslhqXVZoH2QaXHSAWDky0GhIvH9f4GeNaHg4SrFE,104790
|
13
13
|
mdbq/company/__init__.py,sha256=qz8F_GsP_pMB5PblgJAUAMjasuZbOEp3qQOCB39E8f0,21
|
14
|
-
mdbq/company/copysh.py,sha256=
|
14
|
+
mdbq/company/copysh.py,sha256=NvlXCBZBcO2GIT5nLRYYqhOyHWM1-1RE7DHvgbj6jmQ,19723
|
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
|
@@ -41,7 +41,7 @@ mdbq/req_post/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
|
|
41
41
|
mdbq/req_post/req_tb.py,sha256=PexWSCPJNM6Tv0ol4lAWIhlOwsAr_frnjtcdSHCFiek,36179
|
42
42
|
mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
|
43
43
|
mdbq/spider/aikucun.py,sha256=Olq7IJP9itM4wuNxZeHOG-Q3i8wWyB4hY8TUGGwCvQ0,14104
|
44
|
-
mdbq-2.4.
|
45
|
-
mdbq-2.4.
|
46
|
-
mdbq-2.4.
|
47
|
-
mdbq-2.4.
|
44
|
+
mdbq-2.4.9.dist-info/METADATA,sha256=3T_hJJlZ-85YZuX4DRP1CNLotuJkISvL4TbTuPJA6BE,245
|
45
|
+
mdbq-2.4.9.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
46
|
+
mdbq-2.4.9.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
|
47
|
+
mdbq-2.4.9.dist-info/RECORD,,
|
File without changes
|
File without changes
|