qrpa 1.0.87__tar.gz → 1.0.88__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.

Potentially problematic release.


This version of qrpa might be problematic. Click here for more details.

Files changed (37) hide show
  1. {qrpa-1.0.87 → qrpa-1.0.88}/PKG-INFO +1 -1
  2. {qrpa-1.0.87 → qrpa-1.0.88}/pyproject.toml +1 -1
  3. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/shein_lib.py +30 -12
  4. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa.egg-info/PKG-INFO +1 -1
  5. {qrpa-1.0.87 → qrpa-1.0.88}/README.md +0 -0
  6. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/RateLimitedSender.py +0 -0
  7. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/__init__.py +0 -0
  8. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/db_migrator.py +0 -0
  9. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/feishu_bot_app.py +0 -0
  10. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/feishu_client.py +0 -0
  11. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/feishu_logic.py +0 -0
  12. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/fun_base.py +0 -0
  13. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/fun_excel.py +0 -0
  14. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/fun_file.py +0 -0
  15. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/fun_web.py +0 -0
  16. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/fun_win.py +0 -0
  17. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/mysql_module/__init__.py +0 -0
  18. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/mysql_module/shein_product_model.py +0 -0
  19. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/mysql_module/shein_return_order_model.py +0 -0
  20. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/shein_daily_report_model.py +0 -0
  21. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/shein_excel.py +0 -0
  22. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/shein_mysql.py +0 -0
  23. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/shein_sqlite.py +0 -0
  24. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/shein_ziniao.py +0 -0
  25. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/temu_chrome.py +0 -0
  26. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/temu_excel.py +0 -0
  27. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/temu_lib.py +0 -0
  28. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/time_utils.py +0 -0
  29. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/time_utils_example.py +0 -0
  30. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa/wxwork.py +0 -0
  31. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa.egg-info/SOURCES.txt +0 -0
  32. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa.egg-info/dependency_links.txt +0 -0
  33. {qrpa-1.0.87 → qrpa-1.0.88}/qrpa.egg-info/top_level.txt +0 -0
  34. {qrpa-1.0.87 → qrpa-1.0.88}/setup.cfg +0 -0
  35. {qrpa-1.0.87 → qrpa-1.0.88}/setup.py +0 -0
  36. {qrpa-1.0.87 → qrpa-1.0.88}/tests/test_db_migrator.py +0 -0
  37. {qrpa-1.0.87 → qrpa-1.0.88}/tests/test_wxwork.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qrpa
3
- Version: 1.0.87
3
+ Version: 1.0.88
4
4
  Summary: qsir's rpa library
5
5
  Author: QSir
6
6
  Author-email: QSir <1171725650@qq.com>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "qrpa"
7
- version = "1.0.87"
7
+ version = "1.0.88"
8
8
  description = "qsir's rpa library"
9
9
  authors = [{ name = "QSir", email = "1171725650@qq.com" }]
10
10
  readme = "README.md"
@@ -31,19 +31,32 @@ class SheinLib:
31
31
  def deal_auth(self):
32
32
  web_page = self.web_page
33
33
 
34
- # 等待页面稳定并收集诊断信息
35
- try:
36
- log(f"当前页面URL: {web_page.url}, 标题: {web_page.title()}", self.store_username, self.store_name)
37
- web_page.wait_for_load_state("domcontentloaded", timeout=5000)
38
- log("页面DOM加载完成", self.store_username, self.store_name)
39
- except Exception as e:
40
- log(f"等待页面DOM加载超时: {e}, URL: {web_page.url}", self.store_username, self.store_name)
34
+ # 等待页面稳定并处理导航
35
+ for attempt in range(3):
41
36
  try:
42
- log(f"页面状态检查 - 标题: {web_page.title()}, URL: {web_page.url}", self.store_username, self.store_name)
43
- except Exception as check_error:
44
- log(f"页面状态检查失败: {check_error}", self.store_username, self.store_name)
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)
45
58
 
46
- web_page.wait_for_timeout(3000)
59
+ web_page.wait_for_timeout(2000)
47
60
 
48
61
  # 定义最大重试次数
49
62
  MAX_RETRIES = 5
@@ -184,10 +197,15 @@ class SheinLib:
184
197
  except:
185
198
  log("无法获取崩溃时的页面信息", self.store_username, self.store_name)
186
199
 
187
- # 检查是否是内存相关崩溃
200
+ # 检查特定类型的错误
188
201
  if any(keyword in str(e).lower() for keyword in ['memory', 'out of memory', 'oom']):
189
202
  log("检测到内存相关崩溃", self.store_username, self.store_name)
190
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
+
191
209
  if 'crashed' in str(e) or 'Target' in str(e):
192
210
  log("检测到页面或目标崩溃,直接退出当前循环", self.store_username, self.store_name)
193
211
  raise e
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qrpa
3
- Version: 1.0.87
3
+ Version: 1.0.88
4
4
  Summary: qsir's rpa library
5
5
  Author: QSir
6
6
  Author-email: QSir <1171725650@qq.com>
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