qrpa 1.0.86__py3-none-any.whl → 1.0.88__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.
Potentially problematic release.
This version of qrpa might be problematic. Click here for more details.
- qrpa/shein_lib.py +60 -21
- qrpa/shein_ziniao.py +1 -1
- {qrpa-1.0.86.dist-info → qrpa-1.0.88.dist-info}/METADATA +1 -1
- {qrpa-1.0.86.dist-info → qrpa-1.0.88.dist-info}/RECORD +6 -6
- {qrpa-1.0.86.dist-info → qrpa-1.0.88.dist-info}/WHEEL +0 -0
- {qrpa-1.0.86.dist-info → qrpa-1.0.88.dist-info}/top_level.txt +0 -0
qrpa/shein_lib.py
CHANGED
|
@@ -31,11 +31,30 @@ class SheinLib:
|
|
|
31
31
|
def deal_auth(self):
|
|
32
32
|
web_page = self.web_page
|
|
33
33
|
|
|
34
|
-
#
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
# 等待页面稳定并处理导航
|
|
35
|
+
for attempt in range(3):
|
|
36
|
+
try:
|
|
37
|
+
current_url = web_page.url
|
|
38
|
+
log(f"尝试获取页面信息 - URL: {current_url}", self.store_username, self.store_name)
|
|
39
|
+
|
|
40
|
+
# 等待导航完成
|
|
41
|
+
web_page.wait_for_load_state("networkidle", timeout=8000)
|
|
42
|
+
|
|
43
|
+
final_url = web_page.url
|
|
44
|
+
final_title = web_page.title()
|
|
45
|
+
log(f"页面稳定 - URL: {final_url}, 标题: {final_title}", self.store_username, self.store_name)
|
|
46
|
+
break
|
|
47
|
+
|
|
48
|
+
except Exception as e:
|
|
49
|
+
log(f"第{attempt+1}次等待页面稳定失败: {e}", self.store_username, self.store_name)
|
|
50
|
+
if "destroyed" in str(e) or "navigation" in str(e):
|
|
51
|
+
log("检测到导航中断,等待导航完成", self.store_username, self.store_name)
|
|
52
|
+
web_page.wait_for_timeout(5000)
|
|
53
|
+
continue
|
|
54
|
+
elif attempt == 2:
|
|
55
|
+
log("页面稳定等待最终失败,继续执行", self.store_username, self.store_name)
|
|
56
|
+
break
|
|
57
|
+
web_page.wait_for_timeout(2000)
|
|
39
58
|
|
|
40
59
|
web_page.wait_for_timeout(2000)
|
|
41
60
|
|
|
@@ -53,6 +72,13 @@ class SheinLib:
|
|
|
53
72
|
retries += 1
|
|
54
73
|
|
|
55
74
|
while not web_page.locator('//div[contains(text(),"商家后台")]').nth(1).is_visible():
|
|
75
|
+
|
|
76
|
+
try:
|
|
77
|
+
current_url = web_page.url
|
|
78
|
+
current_title = web_page.title()
|
|
79
|
+
log(f"循环检查 - URL: {current_url}, 标题: {current_title}", self.store_username, self.store_name)
|
|
80
|
+
except Exception as status_error:
|
|
81
|
+
log(f"获取页面状态失败: {status_error}", self.store_username, self.store_name)
|
|
56
82
|
|
|
57
83
|
if web_page.locator('xpath=//div[@id="container" and @alita-name="gmpsso"]//button[@type="button" and @id]').nth(0).is_visible():
|
|
58
84
|
if 'https://sso.geiwohuo.com/#/home' not in web_page.url:
|
|
@@ -153,23 +179,36 @@ class SheinLib:
|
|
|
153
179
|
except Exception as e:
|
|
154
180
|
log(f"错误发生: {e}, 重试中...({self.store_username}, {self.store_name})")
|
|
155
181
|
log(traceback.format_exc())
|
|
156
|
-
|
|
182
|
+
|
|
183
|
+
# 收集崩溃时的详细信息
|
|
184
|
+
try:
|
|
185
|
+
crash_url = web_page.url
|
|
186
|
+
crash_title = web_page.title()
|
|
187
|
+
log(f"崩溃时页面信息 - URL: {crash_url}, 标题: {crash_title}", self.store_username, self.store_name)
|
|
188
|
+
|
|
189
|
+
# 尝试截图保存崩溃现场
|
|
157
190
|
try:
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
self.
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
191
|
+
screenshot_path = f"crash_screenshot_{self.store_username}_{int(time.time())}.png"
|
|
192
|
+
web_page.screenshot(path=screenshot_path)
|
|
193
|
+
log(f"已保存崩溃截图: {screenshot_path}", self.store_username, self.store_name)
|
|
194
|
+
except:
|
|
195
|
+
log("无法截取崩溃时的页面截图", self.store_username, self.store_name)
|
|
196
|
+
|
|
197
|
+
except:
|
|
198
|
+
log("无法获取崩溃时的页面信息", self.store_username, self.store_name)
|
|
199
|
+
|
|
200
|
+
# 检查特定类型的错误
|
|
201
|
+
if any(keyword in str(e).lower() for keyword in ['memory', 'out of memory', 'oom']):
|
|
202
|
+
log("检测到内存相关崩溃", self.store_username, self.store_name)
|
|
203
|
+
|
|
204
|
+
if "destroyed" in str(e) or "navigation" in str(e):
|
|
205
|
+
log("检测到导航中断,等待页面稳定后重试", self.store_username, self.store_name)
|
|
206
|
+
web_page.wait_for_timeout(5000)
|
|
207
|
+
continue
|
|
208
|
+
|
|
209
|
+
if 'crashed' in str(e) or 'Target' in str(e):
|
|
210
|
+
log("检测到页面或目标崩溃,直接退出当前循环", self.store_username, self.store_name)
|
|
211
|
+
raise e
|
|
173
212
|
retries += 1
|
|
174
213
|
if retries >= MAX_RETRIES:
|
|
175
214
|
log(f"达到最大重试次数,停止尝试({self.store_username}, {self.store_name})")
|
qrpa/shein_ziniao.py
CHANGED
|
@@ -11,10 +11,10 @@ qrpa/fun_web.py,sha256=Ep2ddMwJix_KNpCiHEjSo7tWu-g55Nlu1QtOXJf6iZw,6531
|
|
|
11
11
|
qrpa/fun_win.py,sha256=-LnTeocdTt72NVH6VgLdpAT9_C5oV9okeudXG6CftMA,8034
|
|
12
12
|
qrpa/shein_daily_report_model.py,sha256=H8oZmIN5Pyqe306W1_xuz87lOqLQ_LI5RjXbaxDkIzE,12589
|
|
13
13
|
qrpa/shein_excel.py,sha256=1F9QMMsaihDfwr0ajSSQdXksBCjuKSPwMynfP7Jlkso,124825
|
|
14
|
-
qrpa/shein_lib.py,sha256=
|
|
14
|
+
qrpa/shein_lib.py,sha256=On9tT6vVeOKH56ukgYrT7eVcnqo_0bgghWFhpvr5z5c,131491
|
|
15
15
|
qrpa/shein_mysql.py,sha256=Sgz6U0_3f4cT5zPf1Ht1OjvSFhrVPLkMxt91NV-ZPCM,3005
|
|
16
16
|
qrpa/shein_sqlite.py,sha256=ZQwD0Gz81q9WY7tY2HMEYvSF9r3N_G_Aur3bYfST9WY,5707
|
|
17
|
-
qrpa/shein_ziniao.py,sha256=
|
|
17
|
+
qrpa/shein_ziniao.py,sha256=hjEgK5gNWytAkvTvJQKEy3A3L-R0sArgnSBk85m41ow,18703
|
|
18
18
|
qrpa/temu_chrome.py,sha256=CbtFy1QPan9xJdJcNZj-EsVGhUvv3ZTEPVDEA4-im40,2803
|
|
19
19
|
qrpa/temu_excel.py,sha256=2hGw76YWzkTZGyFCuuUAab4oHptYX9a6U6yjpNsL7FE,6990
|
|
20
20
|
qrpa/temu_lib.py,sha256=hYB59zsLS3m3NTic_duTwPMOTSxlHyQVa8OhHnHm-1g,7199
|
|
@@ -24,7 +24,7 @@ qrpa/wxwork.py,sha256=gIytG19DZ5g7Tsl0-W3EbjfSnpIqZw-ua24gcB78YEg,11264
|
|
|
24
24
|
qrpa/mysql_module/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
25
|
qrpa/mysql_module/shein_product_model.py,sha256=qViI_Ik3SkXXxqJ1nXjimvfB_a5uiwW9RXL0fOreBao,18880
|
|
26
26
|
qrpa/mysql_module/shein_return_order_model.py,sha256=Zt-bGOH_kCDbakW7uaTmqqo_qTT8v424yidcYSfWvWM,26562
|
|
27
|
-
qrpa-1.0.
|
|
28
|
-
qrpa-1.0.
|
|
29
|
-
qrpa-1.0.
|
|
30
|
-
qrpa-1.0.
|
|
27
|
+
qrpa-1.0.88.dist-info/METADATA,sha256=-ppgc5XGhffpjLxLSBlNMLy9OKv7BGMjpS0BG7rgo-c,231
|
|
28
|
+
qrpa-1.0.88.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
29
|
+
qrpa-1.0.88.dist-info/top_level.txt,sha256=F6T5igi0fhXDucPPUbmmSC0qFCDEsH5eVijfVF48OFU,5
|
|
30
|
+
qrpa-1.0.88.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|