mdbq 3.7.5__py3-none-any.whl → 3.7.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.
Files changed (45) hide show
  1. mdbq/__init__.py +1 -0
  2. mdbq/__version__.py +3 -0
  3. mdbq/aggregation/__init__.py +4 -0
  4. mdbq/aggregation/aggregation_bak.py +1438 -0
  5. mdbq/aggregation/datashow_bak.py +1264 -0
  6. mdbq/aggregation/optimize_data.py +76 -0
  7. mdbq/aggregation/query_data.py +3869 -0
  8. mdbq/bdup/__init__.py +5 -0
  9. mdbq/bdup/bdup.py +111 -0
  10. mdbq/config/__init__.py +4 -0
  11. mdbq/config/default.py +131 -0
  12. mdbq/config/myconfig.py +32 -0
  13. mdbq/config/products.py +159 -0
  14. mdbq/config/set_support.py +25 -0
  15. mdbq/dataframe/__init__.py +4 -0
  16. mdbq/dataframe/converter.py +107 -0
  17. mdbq/log/__init__.py +4 -0
  18. mdbq/log/mylogger.py +66 -0
  19. mdbq/log/spider_logging.py +55 -0
  20. mdbq/mongo/__init__.py +4 -0
  21. mdbq/mongo/mongo.py +729 -0
  22. mdbq/mysql/__init__.py +4 -0
  23. mdbq/mysql/mysql.py +1784 -0
  24. mdbq/mysql/s_query.py +211 -0
  25. mdbq/mysql/year_month_day.py +38 -0
  26. mdbq/other/__init__.py +4 -0
  27. mdbq/other/download_sku_picture.py +985 -0
  28. mdbq/other/porxy.py +115 -0
  29. mdbq/other/pov_city.py +405 -0
  30. mdbq/other/sku_picture_bak.py +1081 -0
  31. mdbq/other/ua_sj.py +222 -0
  32. mdbq/pbix/__init__.py +4 -0
  33. mdbq/pbix/pbix_refresh.py +70 -0
  34. mdbq/pbix/refresh_all.py +158 -0
  35. mdbq/pbix/refresh_all_old.py +177 -0
  36. mdbq/redis/__init__.py +4 -0
  37. mdbq/redis/getredis.py +642 -0
  38. mdbq/spider/__init__.py +4 -0
  39. mdbq/spider/aikucun.py +494 -0
  40. {mdbq-3.7.5.dist-info → mdbq-3.7.6.dist-info}/METADATA +1 -1
  41. mdbq-3.7.6.dist-info/RECORD +43 -0
  42. mdbq-3.7.6.dist-info/top_level.txt +1 -0
  43. mdbq-3.7.5.dist-info/RECORD +0 -4
  44. mdbq-3.7.5.dist-info/top_level.txt +0 -1
  45. {mdbq-3.7.5.dist-info → mdbq-3.7.6.dist-info}/WHEEL +0 -0
mdbq/other/ua_sj.py ADDED
@@ -0,0 +1,222 @@
1
+ import random
2
+
3
+
4
+ def get_ua():
5
+ first_num = random.randint(55, 76)
6
+ third_num = random.randint(0, 3800)
7
+ fourth_num = random.randint(0, 140)
8
+ os_type = [
9
+ '(Windows NT 6.1; WOW64)',
10
+ '(Windows NT 10.0; WOW64)',
11
+ '(X11; Linux x86_64)',
12
+ '(Macintosh; Intel Mac OS X 10_14_5)',
13
+ ]
14
+ chrome_version = f'Chrome/{first_num}.0.{third_num}.{fourth_num}'
15
+ ua = ' '.join(
16
+ [
17
+ 'Mozilla/5.0',
18
+ random.choice(os_type),
19
+ 'AppleWebKit/537.36',
20
+ '(KHTML, like Gecko)',
21
+ chrome_version,
22
+ 'Safari/537.36',
23
+ ]
24
+ )
25
+ return ua
26
+
27
+
28
+ user_agent_list = [
29
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36',
30
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13',
31
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/531.4 (KHTML, like Gecko) Chrome/3.0.194.0 Safari/531.4',
32
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16',
33
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.50 Safari/525.19',
34
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.211.7 Safari/532.0',
35
+ 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; Lunascape 5.0 alpha2)',
36
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.222.7 Safari/532.2',
37
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru-RU) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16',
38
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.10 Safari/532.0',
39
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon;',
40
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.1 (KHTML, like Gecko) Chrome/2.0.169.0 Safari/530.1',
41
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20040614 Firefox/0.9',
42
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.810.0 Safari/535.1',
43
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.211.0 Safari/532.0',
44
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36',
45
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6',
46
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; TencentTraveler)',
47
+ 'Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
48
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.481.0 Safari/534.4',
49
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.370.0 Safari/533.4',
50
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0',
51
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.4.154.31 Safari/525.19',
52
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.17) Gecko/20110123 (like Firefox/3.x) SeaMonkey/2.0.12',
53
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB) AppleWebKit/534.1 (KHTML, like Gecko) Chrome/6.0.428.0 Safari/534.1',
54
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; de-DE) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/7.0.540.0 Safari/534.10',
55
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE) Chrome/4.0.223.3 Safari/532.2',
56
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/12.0.702.0 Safari/534.24',
57
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.42 Safari/525.19',
58
+ 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
59
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.3 (KHTML, like Gecko) Chrome/4.0.227.0 Safari/532.3',
60
+ 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.8 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.8',
61
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.460.0 Safari/534.3',
62
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.463.0 Safari/534.3',
63
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/528.9 (KHTML, like Gecko) Chrome/2.0.157.0 Safari/528.9',
64
+ 'Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.794.0 Safari/535.1',
65
+ 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.694.0 Safari/534.24',
66
+ 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5',
67
+ 'Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50',
68
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1',
69
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0',
70
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6',
71
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)',
72
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.223.4 Safari/532.2',
73
+ 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.65 Safari/535.11',
74
+ 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1',
75
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.682.0 Safari/534.21',
76
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.0 (KHTML, like Gecko) Chrome/2.0.182.0 Safari/531.0',
77
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.9 (KHTML, like Gecko) Chrome/7.0.531.0 Safari/534.9',
78
+ 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)',
79
+ 'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
80
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.811.0 Safari/535.1',
81
+ 'ozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:1.7.5) Gecko/20041108 Firefox/1.0',
82
+ 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
83
+ 'Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124',
84
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.127 Safari/533.4',
85
+ 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) QQBrowser/6.9.11079.201',
86
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10',
87
+ 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2',
88
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; zh-cn) Opera 8.50',
89
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/7.0.0 Safari/700.13',
90
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.211.4 Safari/532.0',
91
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.53 Safari/525.19',
92
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36',
93
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.6 Safari/532.0',
94
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.1 Safari/532.0',
95
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/0.9.2 StumbleUpon/1.994',
96
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)',
97
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.7.5) Gecko/20041110 Firefox/1.0',
98
+ 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1467.0 Safari/537.36',
99
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.0',
100
+ 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201',
101
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2',
102
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
103
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11',
104
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b4pre) Gecko/20100815 Minefield/4.0b4pre',
105
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
106
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; en-US; rv:1.9pre) Gecko/2008072421 Minefield/3.0.2pre',
107
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.6 Safari/530.5',
108
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)',
109
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.21 Safari/532.0',
110
+ 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.792.0 Safari/535.1',
111
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/530.1 (KHTML, like Gecko) Chrome/2.0.168.0 Safari/530.1',
112
+ 'Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10',
113
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10',
114
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8',
115
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8',
116
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)',
117
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.40 Safari/530.5',
118
+ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
119
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.24 Safari/532.0',
120
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/528.10 (KHTML, like Gecko) Chrome/2.0.157.2 Safari/528.10',
121
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.223.2 Safari/532.2',
122
+ 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7',
123
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461)',
124
+ 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)',
125
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.461.0 Safari/534.3',
126
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.0; rv:1.7.3) Gecko/20041001 Firefox/0.10.1',
127
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)',
128
+ 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3',
129
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; de-DE) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.202.2 Safari/532.0',
130
+ 'Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0) Gecko/16.0 Firefox/16.0',
131
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/531.3 (KHTML, like Gecko) Chrome/3.0.193.2 Safari/531.3',
132
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1',
133
+ 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)',
134
+ 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.864.0 Safari/535.2',
135
+ 'Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.813.0 Safari/535.1',
136
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.6 Safari/532.0',
137
+ 'Mozilla/5.0 (Windows NT 5.1; rv:2.1.1) Gecko/20110415 Firefox/4.0.2pre Fennec/4.0.1',
138
+ 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.801.0 Safari/535.1',
139
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.212.0 Safari/532.0',
140
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13',
141
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.0 Safari/532.5',
142
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.36 Safari/535.7',
143
+ 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.697.0 Safari/534.24',
144
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/7.0.548.0 Safari/534.10',
145
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.17 (KHTML, like Gecko) Chrome/11.0.652.0 Safari/534.17',
146
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36',
147
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10 ChromePlus/1.5.2.0',
148
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.0 Safari/532.1',
149
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.211.7 Safari/532.0',
150
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.2 Safari/533.2',
151
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.4 Safari/532.1',
152
+ 'Mozilla/5.0 (Windows NT 6.0; rv:2.1.1) Gecko/20110415 Firefox/4.0.2pre Fennec/4.0.1',
153
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.2.153.0 Safari/525.19',
154
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0',
155
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.462.0 Safari/534.3',
156
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.5) Gecko/20041122 Firefox/1.0',
157
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; uZardWeb/1.0; Server_JP)',
158
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; HCI0449; .NET CLR 1.0.3705)',
159
+ 'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt); Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1);',
160
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.23 Safari/530.5',
161
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.208.0 Safari/532.0',
162
+ 'Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 Firefox/14.0.1',
163
+ 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36',
164
+ 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1',
165
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/530.7 (KHTML, like Gecko) Chrome/2.0.176.0 Safari/530.7',
166
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.21 (KHTML, like Gecko) Chrome/11.0.678.0 Safari/534.21',
167
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.21 Safari/532.0',
168
+ 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)',
169
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.1',
170
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.55 Safari/525.19',
171
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0a1) Gecko/20110623 Firefox/7.0a1 Fennec/7.0a1',
172
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.724.100 Safari/534.30',
173
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0',
174
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; WOW64; SV1; uZardWeb/1.0; Server_HK)',
175
+ 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1',
176
+ 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)',
177
+ 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)',
178
+ 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3',
179
+ 'Mozilla/5.0 (Windows NT 6.0) yi; AppleWebKit/345667.12221 (KHTML, like Gecko) Chrome/23.0.1271.26 Safari/453667.1221',
180
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.2 (KHTML, like Gecko) Chrome/3.0.191.3 Safari/531.2',
181
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.39 Safari/530.5',
182
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.1 Safari/532.0',
183
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.38 Safari/532.0',
184
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0',
185
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b) Gecko/20050118 Firefox/1.0+',
186
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20040707 Firefox/0.9.2',
187
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.202.0 Safari/532.0',
188
+ 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)',
189
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/530.4 (KHTML, like Gecko) Chrome/2.0.171.0 Safari/530.4',
190
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)',
191
+ 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24',
192
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; nl-NL; rv:1.7.5) Gecko/20041202 Firefox/1.0',
193
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.204.0 Safari/532.0',
194
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.222.6 Safari/532.2',
195
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/528.8 (KHTML, like Gecko) Chrome/1.0.156.0 Safari/528.8',
196
+ 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0)',
197
+ 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 1.1.4322)',
198
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.43 Safari/534.7',
199
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.15 Safari/534.13',
200
+ 'Mozilla/5.0 (ipad Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.498.0 Safari/534.6',
201
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.43 Safari/530.5',
202
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.208.0 Safari/532.0',
203
+ 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.66 Safari/535.11',
204
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.19 (KHTML, like Gecko) Chrome/11.0.661.0 Safari/534.19',
205
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-CA) AppleWebKit/534.13 (KHTML like Gecko) Chrome/9.0.597.98 Safari/534.13',
206
+ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)',
207
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.211.2 Safari/532.0',
208
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.201.1 Safari/532.0',
209
+ 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3',
210
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.201.1 Safari/532.0',
211
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.213.1 Safari/532.1',
212
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.6 (KHTML, like Gecko) Chrome/2.0.174.0 Safari/530.6',
213
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/0.3.154.6 Safari/525.19',
214
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.599.0 Safari/534.13',
215
+ 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.8 (KHTML, like Gecko) Chrome/7.0.521.0 Safari/534.8',
216
+ 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1',
217
+ 'Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5'
218
+ ]
219
+
220
+
221
+ if __name__ == '__main__':
222
+ print(get_ua())
mdbq/pbix/__init__.py ADDED
@@ -0,0 +1,4 @@
1
+
2
+
3
+
4
+ # 刷新 pbix, excel
@@ -0,0 +1,70 @@
1
+ import time
2
+ import os
3
+ import psutil
4
+ # from pywinauto.application import Application
5
+
6
+
7
+ def pbi(_path, _timeout=300):
8
+ """
9
+ _path: pbi文件路径
10
+ _timeout: 刷新等待时间
11
+ 如果连接失败,请将 power bi 文件名的特殊字符(空格等)去掉或改为英文文件名试试
12
+ """
13
+ # 关闭已打开的 power bi进程
14
+ procname = "PBIDesktop.exe"
15
+ for proc in psutil.process_iter():
16
+ if proc.name() == procname:
17
+ proc.kill()
18
+ time.sleep(1)
19
+
20
+ # 启动 Power bi
21
+ os.system('start "" "' + _path + '"')
22
+ time.sleep(5)
23
+
24
+ # 通过 connect 方法连接进程
25
+ app = Application(backend='uia').connect(path=procname)
26
+ # title_re可以通过正则表达式连接:".*Power BI Desktop", 仅限 2023年9月之前的 Power bi版本
27
+ # 2023年10月之后的版本没有此窗口后缀, 因此需用文件名找窗口
28
+ # 如果同时打开了其他同名的文件(非 power bi文件时), 可能会引发错误
29
+ _filename = os.path.splitext(os.path.basename(_path))[0] # 文件名不含后缀
30
+ win = app.window(title_re=f'{_filename}.*?') # 连接 pbi 窗口
31
+ time.sleep(10)
32
+ # win.print_control_identifiers() # 打印窗口全部信息, 推荐使用 inspect 开发工具查询窗口句柄信息
33
+ num = 0
34
+ while True:
35
+ try:
36
+ win['刷新'].wait("enabled", timeout=_timeout)
37
+ time.sleep(3)
38
+ win['刷新'].click()
39
+ break
40
+ except:
41
+ print(f'{_path}, 未识别窗口句柄, 连接超时')
42
+ num += 1
43
+ if num > 1:
44
+ break
45
+
46
+ num = 0
47
+ while True:
48
+ try:
49
+ win['保存'].wait("enabled", timeout=_timeout) # timeout 通过"保存"按键状态, 等待刷新窗口关闭, 时间不要设置太短
50
+ time.sleep(3)
51
+ win['保存'].click()
52
+ break
53
+ except:
54
+ print(f'{_path}, 未识别窗口句柄, 文件未保存')
55
+ num += 1
56
+ if num > 1:
57
+ break
58
+ # win.type_keys("^s")
59
+ win.wait("enabled", timeout=15)
60
+ win.close()
61
+
62
+ # 关闭进程
63
+ for proc in psutil.process_iter():
64
+ if proc.name() == procname:
65
+ proc.kill()
66
+
67
+
68
+ if __name__ == '__main__':
69
+ path = r'C:\Users\Administrator\Downloads\cs.pbix'
70
+ pbi(path)
@@ -0,0 +1,158 @@
1
+ import os
2
+ import sys
3
+ import time
4
+ import psutil
5
+ from pywinauto.application import Application
6
+ import datetime
7
+ import warnings
8
+ # from mdbq.config import set_support
9
+
10
+ warnings.filterwarnings('ignore')
11
+ # top_path = os.path.realpath(os.path.dirname(sys.argv[0])) # 程序运行目录, 打包时使用
12
+ # sys.path.append(top_path)
13
+
14
+
15
+ class RefreshAll:
16
+ def __init__(self):
17
+ # self.my_conf = os.path.join(set_support.SetSupport(dirname='support').dirname, '.my_conf')
18
+ # self.file = None
19
+ self.procname = 'PBIDesktop.exe'
20
+
21
+ def refresh_pbix(self, file):
22
+ # 刷新 PBI
23
+ if not os.path.isfile(file):
24
+ now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S ')
25
+ print(f'{now}{file} -> 文件不存在')
26
+ return
27
+ # with open(self.pbix_path, 'r', encoding='utf-8') as f:
28
+ # content = f.readlines()
29
+ # content = [item.strip() for item in content if not item.strip().startswith('#') and not item.strip().startswith('[')]
30
+ # pbix_list = [item for item in content if item]
31
+
32
+ # if not pbix_list:
33
+ # return
34
+ # for filename in pbix_list:
35
+ if not file.endswith('.pbix'):
36
+ return
37
+
38
+ """刷新程序"""
39
+ for es in range(4):
40
+ try:
41
+ now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S ')
42
+ print(f'{now}正在刷新 >>>{file}')
43
+ self.pbi(path=file)
44
+ # print('文件已刷新!')
45
+ break
46
+ except Exception as e:
47
+ print(e)
48
+ now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S ')
49
+ print(f'{now}报错的文件 >>>' + file + ' >> ' + str(es + 1))
50
+
51
+ def refresh_excel(self, file):
52
+ # 刷新 excel
53
+ import win32com.client
54
+ if not os.path.isfile(file):
55
+ now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S ')
56
+ print(f'{now}{file} -> 文件不存在')
57
+ return
58
+ if not file.endswith('.xlsx') and not file.endswith('.xls'):
59
+ return
60
+
61
+ # with open(self.excel_path, 'r', encoding='utf-8') as f:
62
+ # content = f.readlines()
63
+ # content = [item.strip() for item in content if not item.strip().startswith('#')]
64
+ # excel_list = [item for item in content if item]
65
+ #
66
+ # if not excel_list:
67
+ # return
68
+ try:
69
+ now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S ')
70
+ print(f'{now}正在刷新 >>>{file}')
71
+ xlapp = win32com.client.Dispatch('Excel.Application') # 创建Excel程序App
72
+ xlapp.Visible = False # 窗口是否可见
73
+ xlapp.DisplayAlerts = False # 是否显示警告信息
74
+ wb = xlapp.Workbooks.Open(file)
75
+ conjuncts = wb.Connections.Count # 统计工作簿含有多少外部链接
76
+ if conjuncts == 0:
77
+ wb.Close(SaveChanges=False)
78
+ xlapp.Quit()
79
+ else:
80
+ time.sleep(2)
81
+ wb.RefreshAll()
82
+ xlapp.CalculateUntilAsyncQueriesDone()
83
+ time.sleep(2)
84
+ wb.Save()
85
+ wb.Close(SaveChanges=True)
86
+ xlapp.Quit()
87
+ # print('文件已刷新!')
88
+ except Exception as e:
89
+ print(file, e)
90
+
91
+
92
+ def pbi(self, path, _timeout=300):
93
+ """
94
+ 会被 refresh_pbix 函数调用
95
+ 这是原本属于独立的库模块: pbix_refresh
96
+ path: pbi文件路径
97
+ _timeout: 刷新等待时间
98
+ 如果连接失败,请将 power bi 文件名的特殊字符(空格等)去掉或改为英文文件名试试
99
+ """
100
+ # 关闭已打开的 power bi进程
101
+ for proc in psutil.process_iter():
102
+ if proc.name() == self.procname:
103
+ proc.kill()
104
+ time.sleep(1)
105
+
106
+ # 启动 Power bi
107
+ os.system('start "" "' + path + '"')
108
+ time.sleep(5)
109
+
110
+ # 通过 connect 方法连接进程
111
+ app = Application(backend='uia').connect(path=self.procname)
112
+ # title_re可以通过正则表达式连接:".*Power BI Desktop", 仅限 2023年9月之前的 Power bi版本
113
+ # 2023年10月之后的版本没有此窗口后缀, 因此需用文件名找窗口
114
+ # 如果同时打开了其他同名的文件(非 power bi文件时), 可能会引发错误
115
+ _filename = os.path.splitext(os.path.basename(path))[0] # 文件名不含后缀
116
+ win = app.window(title_re=f'{_filename}.*?') # 连接 pbi 窗口
117
+ time.sleep(10)
118
+ # win.print_control_identifiers() # 打印窗口全部信息, 推荐使用 inspect 开发工具查询窗口句柄信息
119
+ num = 0
120
+ while True:
121
+ try:
122
+ win['刷新'].wait("enabled", timeout=_timeout)
123
+ time.sleep(3)
124
+ win['刷新'].click()
125
+ break
126
+ except:
127
+ print(f'{path}, 未识别窗口句柄, 连接超时')
128
+ num += 1
129
+ if num > 1:
130
+ break
131
+
132
+ num = 0
133
+ while True:
134
+ try:
135
+ win['保存'].wait("enabled", timeout=_timeout) # timeout 通过"保存"按键状态, 等待刷新窗口关闭, 时间不要设置太短
136
+ time.sleep(3)
137
+ win['保存'].click()
138
+ break
139
+ except:
140
+ print(f'{path}, 未识别窗口句柄, 文件未保存')
141
+ num += 1
142
+ if num > 1:
143
+ break
144
+ # win.type_keys("^s")
145
+ win.wait("enabled", timeout=15)
146
+ win.close()
147
+
148
+ # 关闭进程
149
+ for proc in psutil.process_iter():
150
+ if proc.name() == self.procname:
151
+ proc.kill()
152
+
153
+
154
+ if __name__ == '__main__':
155
+ # r = RefreshAll()
156
+ # # r.refresh_pbix()
157
+ # r.refresh_excel()
158
+ pass
@@ -0,0 +1,177 @@
1
+ import os
2
+ import sys
3
+ import win32com.client
4
+ import time
5
+ import multiprocessing
6
+ import psutil
7
+ from pywinauto.application import Application
8
+ import warnings
9
+ from mdbq.config import set_support
10
+
11
+ warnings.filterwarnings('ignore')
12
+ top_path = os.path.realpath(os.path.dirname(sys.argv[0])) # 程序运行目录, 打包时使用
13
+ sys.path.append(top_path)
14
+
15
+
16
+ class RefreshAll:
17
+ def __init__(self):
18
+ self.my_conf = os.path.join(set_support.SetSupport(dirname='support').dirname, '.my_conf')
19
+ self.pbix_path = os.path.join(set_support.SetSupport(dirname='support').dirname, 'ref_list.txt')
20
+ self.excel_path = os.path.join(set_support.SetSupport(dirname='support').dirname, 'ref_list.txt')
21
+ self.run_py_path = 'run_py'
22
+ self.procname = 'PBIDesktop.exe'
23
+
24
+ def refresh_pbix(self):
25
+ # 刷新 PBI
26
+ if not os.path.exists(self.pbix_path):
27
+ print(f'{self.pbix_path}: PBIxx file not found. ')
28
+ return
29
+ with open(self.pbix_path, 'r', encoding='utf-8') as f:
30
+ content = f.readlines()
31
+ content = [item.strip() for item in content if not item.strip().startswith('#') and not item.strip().startswith('[')]
32
+ pbix_list = [item for item in content if item]
33
+
34
+ if not pbix_list:
35
+ return
36
+ for filename in pbix_list:
37
+ if filename.endswith('.pbix'):
38
+ newfile = os.path.join(self.run_py_path, filename)
39
+ """刷新程序"""
40
+ for es in range(4):
41
+ try:
42
+ print(f'正在刷新 >>>{filename}')
43
+ self.pbi(path=newfile)
44
+ print('文件刷新 >>>' + filename)
45
+ break
46
+ except Exception as e:
47
+ print(e)
48
+ print('报错的文件 >>>' + filename + ' >> ' + str(es + 1))
49
+
50
+ def refresh_excel(self):
51
+ # 刷新 excel
52
+ if not os.path.exists(self.excel_path):
53
+ print(f'{self.excel_path}: Excel file not found. ')
54
+ return
55
+ with open(self.excel_path, 'r', encoding='utf-8') as f:
56
+ content = f.readlines()
57
+ content = [item.strip() for item in content if not item.strip().startswith('#')]
58
+ excel_list = [item for item in content if item]
59
+
60
+ if not excel_list:
61
+ return
62
+ for filename in excel_list:
63
+ if filename.endswith('.xlsx'):
64
+ try:
65
+ print(f'正在刷新 >>>{filename}')
66
+ path = os.path.join(top_path, self.run_py_path, filename) # 拼接文件路径
67
+ xlapp = win32com.client.Dispatch('Excel.Application') # 创建Excel程序App
68
+ xlapp.Visible = False # 窗口是否可见
69
+ xlapp.DisplayAlerts = False # 是否显示警告信息
70
+ wb = xlapp.Workbooks.Open(path)
71
+ conjuncts = wb.Connections.Count # 统计工作簿含有多少外部链接
72
+ if conjuncts == 0:
73
+ wb.Close(SaveChanges=False)
74
+ xlapp.Quit()
75
+ else:
76
+ time.sleep(2)
77
+ wb.RefreshAll()
78
+ xlapp.CalculateUntilAsyncQueriesDone()
79
+ time.sleep(2)
80
+ wb.Save()
81
+ wb.Close(SaveChanges=True)
82
+ xlapp.Quit()
83
+ print('文件刷新 >>>' + filename)
84
+ except Exception as e:
85
+ print(e)
86
+
87
+ def refresh_excel2(self, excel_file):
88
+ # 刷新 excel
89
+ if excel_file.endswith('.xlsx'):
90
+ try:
91
+ print(f'正在刷新 >>>{excel_file}')
92
+ xlapp = win32com.client.Dispatch('Excel.Application') # 创建Excel程序App
93
+ xlapp.Visible = False # 窗口是否可见
94
+ xlapp.DisplayAlerts = False # 是否显示警告信息
95
+ wb = xlapp.Workbooks.Open(excel_file)
96
+ conjuncts = wb.Connections.Count # 统计工作簿含有多少外部链接
97
+ if conjuncts == 0:
98
+ wb.Close(SaveChanges=False)
99
+ xlapp.Quit()
100
+ else:
101
+ time.sleep(2)
102
+ wb.RefreshAll()
103
+ xlapp.CalculateUntilAsyncQueriesDone()
104
+ time.sleep(2)
105
+ wb.Save()
106
+ wb.Close(SaveChanges=True)
107
+ xlapp.Quit()
108
+ print('文件刷新 >>>' + excel_file)
109
+ except Exception as e:
110
+ print(e)
111
+
112
+ def pbi(self, path, _timeout=300):
113
+ """
114
+ 这是原本属于独立的库模块: pbix_refresh
115
+ path: pbi文件路径
116
+ _timeout: 刷新等待时间
117
+ 如果连接失败,请将 power bi 文件名的特殊字符(空格等)去掉或改为英文文件名试试
118
+ """
119
+ # 关闭已打开的 power bi进程
120
+ for proc in psutil.process_iter():
121
+ if proc.name() == self.procname:
122
+ proc.kill()
123
+ time.sleep(1)
124
+
125
+ # 启动 Power bi
126
+ os.system('start "" "' + path + '"')
127
+ time.sleep(5)
128
+
129
+ # 通过 connect 方法连接进程
130
+ app = Application(backend='uia').connect(path=self.procname)
131
+ # title_re可以通过正则表达式连接:".*Power BI Desktop", 仅限 2023年9月之前的 Power bi版本
132
+ # 2023年10月之后的版本没有此窗口后缀, 因此需用文件名找窗口
133
+ # 如果同时打开了其他同名的文件(非 power bi文件时), 可能会引发错误
134
+ _filename = os.path.splitext(os.path.basename(path))[0] # 文件名不含后缀
135
+ win = app.window(title_re=f'{_filename}.*?') # 连接 pbi 窗口
136
+ time.sleep(10)
137
+ # win.print_control_identifiers() # 打印窗口全部信息, 推荐使用 inspect 开发工具查询窗口句柄信息
138
+ num = 0
139
+ while True:
140
+ try:
141
+ win['刷新'].wait("enabled", timeout=_timeout)
142
+ time.sleep(3)
143
+ win['刷新'].click()
144
+ break
145
+ except:
146
+ print(f'{path}, 未识别窗口句柄, 连接超时')
147
+ num += 1
148
+ if num > 1:
149
+ break
150
+
151
+ num = 0
152
+ while True:
153
+ try:
154
+ win['保存'].wait("enabled", timeout=_timeout) # timeout 通过"保存"按键状态, 等待刷新窗口关闭, 时间不要设置太短
155
+ time.sleep(3)
156
+ win['保存'].click()
157
+ break
158
+ except:
159
+ print(f'{path}, 未识别窗口句柄, 文件未保存')
160
+ num += 1
161
+ if num > 1:
162
+ break
163
+ # win.type_keys("^s")
164
+ win.wait("enabled", timeout=15)
165
+ win.close()
166
+
167
+ # 关闭进程
168
+ for proc in psutil.process_iter():
169
+ if proc.name() == self.procname:
170
+ proc.kill()
171
+
172
+
173
+ if __name__ == '__main__':
174
+ # r = RefreshAll()
175
+ # # r.refresh_pbix()
176
+ # r.refresh_excel()
177
+ pass
mdbq/redis/__init__.py ADDED
@@ -0,0 +1,4 @@
1
+
2
+
3
+
4
+ # 缓存