qrpa 1.0.75__py3-none-any.whl → 1.0.77__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/fun_web.py +7 -0
- qrpa/shein_lib.py +13 -20
- qrpa/shein_ziniao.py +0 -1
- {qrpa-1.0.75.dist-info → qrpa-1.0.77.dist-info}/METADATA +1 -1
- {qrpa-1.0.75.dist-info → qrpa-1.0.77.dist-info}/RECORD +7 -7
- {qrpa-1.0.75.dist-info → qrpa-1.0.77.dist-info}/WHEEL +0 -0
- {qrpa-1.0.75.dist-info → qrpa-1.0.77.dist-info}/top_level.txt +0 -0
qrpa/fun_web.py
CHANGED
|
@@ -5,6 +5,8 @@ from playwright.sync_api import Page
|
|
|
5
5
|
from .fun_base import log, send_exception
|
|
6
6
|
from .time_utils import get_current_datetime
|
|
7
7
|
|
|
8
|
+
import inspect
|
|
9
|
+
|
|
8
10
|
def fetch(page: Page, url: str, params: Optional[Union[dict, list, str]] = None, headers: Optional[dict] = None, config:
|
|
9
11
|
Optional[dict] = None) -> dict:
|
|
10
12
|
"""
|
|
@@ -143,3 +145,8 @@ def full_screen_shot(web_page: Page, config):
|
|
|
143
145
|
full_screenshot_image_path = f'{config.auto_dir}/screenshot/{get_current_datetime()}.png'
|
|
144
146
|
web_page.screenshot(path=full_screenshot_image_path, full_page=True)
|
|
145
147
|
return full_screenshot_image_path
|
|
148
|
+
|
|
149
|
+
def safe_goto(page, url, **kwargs):
|
|
150
|
+
caller = inspect.stack()[1]
|
|
151
|
+
log(f"[DEBUG] goto called from {caller.filename}:{caller.lineno} url={url}")
|
|
152
|
+
return page.goto(url, **kwargs)
|
qrpa/shein_lib.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from .fun_file import read_dict_from_file, write_dict_to_file, read_dict_from_file_ex, write_dict_to_file_ex
|
|
2
2
|
from .fun_base import log, send_exception, md5_string, get_safe_value, NetWorkIdleTimeout
|
|
3
|
-
from .fun_web import fetch, full_screen_shot
|
|
3
|
+
from .fun_web import fetch, full_screen_shot, safe_goto
|
|
4
4
|
from .time_utils import TimeUtils
|
|
5
5
|
from .wxwork import WxWorkBot
|
|
6
6
|
|
|
@@ -50,8 +50,7 @@ class SheinLib:
|
|
|
50
50
|
if 'https://sso.geiwohuo.com/#/home' not in web_page.url:
|
|
51
51
|
log("鉴权确定按钮可见 点击'确定'按钮", web_page.title(), web_page.url, self.store_username, self.store_name)
|
|
52
52
|
web_page.locator('xpath=//div[@id="container" and @alita-name="gmpsso"]//button[@type="button" and @id]').nth(0).click()
|
|
53
|
-
web_page.
|
|
54
|
-
web_page.wait_for_timeout(1000)
|
|
53
|
+
web_page.wait_for_timeout(5000)
|
|
55
54
|
|
|
56
55
|
while web_page.locator('//div[text()="验证码"]').is_visible():
|
|
57
56
|
log(f'等待输入验证码: {wait_count}', self.store_username, self.store_name)
|
|
@@ -92,13 +91,12 @@ class SheinLib:
|
|
|
92
91
|
|
|
93
92
|
log('商家后台不可见', web_page.title(), web_page.url, self.store_username, self.store_name)
|
|
94
93
|
if 'https://sso.geiwohuo.com/#/home' in web_page.url:
|
|
95
|
-
web_page.wait_for_timeout(3000)
|
|
96
94
|
web_page.reload()
|
|
97
|
-
web_page.
|
|
95
|
+
web_page.wait_for_timeout(5000)
|
|
98
96
|
|
|
99
97
|
while r'=/CN' in web_page.url:
|
|
100
|
-
web_page
|
|
101
|
-
|
|
98
|
+
safe_goto(web_page, 'https://sso.geiwohuo.com')
|
|
99
|
+
|
|
102
100
|
web_page.wait_for_timeout(5000)
|
|
103
101
|
if web_page.locator('//input[@name="username"]').is_visible():
|
|
104
102
|
log("用户名输入框可见 等待5秒点击'登录'按钮", self.store_username, self.store_name)
|
|
@@ -115,35 +113,30 @@ class SheinLib:
|
|
|
115
113
|
|
|
116
114
|
if 'SHEIN全球商家中心' in web_page.title() or '后台首页' in web_page.title() or '商家后台' in web_page.title():
|
|
117
115
|
log(web_page.title(), '中断循环', self.store_username, self.store_name)
|
|
118
|
-
web_page.
|
|
119
|
-
web_page.wait_for_timeout(2000)
|
|
116
|
+
web_page.wait_for_timeout(5000)
|
|
120
117
|
break
|
|
121
118
|
|
|
122
119
|
if 'mrs.biz.sheincorp.cn' in web_page.url and '商家后台' in web_page.title():
|
|
123
|
-
web_page
|
|
124
|
-
web_page.
|
|
125
|
-
web_page.wait_for_timeout(3000)
|
|
120
|
+
safe_goto(web_page, 'https://sso.geiwohuo.com/#/home')
|
|
121
|
+
web_page.wait_for_timeout(5000)
|
|
126
122
|
|
|
127
123
|
if web_page.locator('//h1[contains(text(),"鉴权")]').is_visible():
|
|
128
124
|
log('检测到鉴权 刷新页面', self.store_username, self.store_name)
|
|
129
125
|
web_page.reload()
|
|
130
|
-
web_page.
|
|
131
|
-
web_page.wait_for_timeout(3000)
|
|
126
|
+
web_page.wait_for_timeout(5000)
|
|
132
127
|
web_page.reload()
|
|
133
|
-
web_page.wait_for_timeout(
|
|
128
|
+
web_page.wait_for_timeout(5000)
|
|
134
129
|
|
|
135
130
|
if web_page.title() == 'SHEIN':
|
|
136
|
-
web_page
|
|
137
|
-
web_page.
|
|
138
|
-
web_page.wait_for_timeout(3000)
|
|
131
|
+
safe_goto(web_page, 'https://sso.geiwohuo.com/#/home')
|
|
132
|
+
web_page.wait_for_timeout(5000)
|
|
139
133
|
|
|
140
134
|
break
|
|
141
135
|
except Exception as e:
|
|
142
136
|
log(f"错误发生: {e}, 重试中...({self.store_username}, {self.store_name})")
|
|
143
137
|
log(traceback.format_exc())
|
|
144
138
|
if 'crashed' in str(e) or 'https://sso.geiwohuo.com//#/auth/SSLS' in web_page.url:
|
|
145
|
-
web_page
|
|
146
|
-
web_page.wait_for_load_state('load')
|
|
139
|
+
safe_goto(web_page, 'https://sso.geiwohuo.com/#/home')
|
|
147
140
|
web_page.wait_for_timeout(10000)
|
|
148
141
|
retries += 1
|
|
149
142
|
if retries >= MAX_RETRIES:
|
qrpa/shein_ziniao.py
CHANGED
|
@@ -7,14 +7,14 @@ qrpa/feishu_logic.py,sha256=yuwb-LeZiHKGlz-W8JobinorHonVa8L-5h12WxnU7_Q,67508
|
|
|
7
7
|
qrpa/fun_base.py,sha256=lMzqPwsbVfe968CUR2MVNImzIskIUZqPCE2tWxYqb5o,10728
|
|
8
8
|
qrpa/fun_excel.py,sha256=-GFtjg0LeiiXrpTU5RtMlBUHl05mqzdHCzIxlssT59U,117385
|
|
9
9
|
qrpa/fun_file.py,sha256=yzjDV16WL5vRys7J4uQcNzIFkX4D5MAlSCwxcD-mwQo,11966
|
|
10
|
-
qrpa/fun_web.py,sha256=
|
|
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=dt4thHsW85slTIILf5uafKB5I3shz4CtIWHVAC8gmpw,126283
|
|
15
15
|
qrpa/shein_mysql.py,sha256=SrgBYPNWaKHIpD5Q7hqz3GWvytXO8u9SPvKxJvLwYsI,2720
|
|
16
16
|
qrpa/shein_sqlite.py,sha256=ZQwD0Gz81q9WY7tY2HMEYvSF9r3N_G_Aur3bYfST9WY,5707
|
|
17
|
-
qrpa/shein_ziniao.py,sha256=
|
|
17
|
+
qrpa/shein_ziniao.py,sha256=3PvoRK-J81q5vhNXdhJ_OODExXPrPfJzTgYBH1S4rxM,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.77.dist-info/METADATA,sha256=QOLKoTqOvrIlHL4u5rhzyJ2jeJ8tAsyXIq8OZ7AEJBE,231
|
|
28
|
+
qrpa-1.0.77.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
29
|
+
qrpa-1.0.77.dist-info/top_level.txt,sha256=F6T5igi0fhXDucPPUbmmSC0qFCDEsH5eVijfVF48OFU,5
|
|
30
|
+
qrpa-1.0.77.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|