mdbq 4.0.74__tar.gz → 4.0.76__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.
- {mdbq-4.0.74 → mdbq-4.0.76}/PKG-INFO +2 -2
- mdbq-4.0.76/mdbq/__version__.py +1 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/selenium/get_driver.py +25 -11
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq.egg-info/PKG-INFO +2 -2
- mdbq-4.0.74/mdbq/__version__.py +0 -1
- {mdbq-4.0.74 → mdbq-4.0.76}/README.txt +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/__init__.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/log/__init__.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/log/mylogger.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/myconf/__init__.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/myconf/myconf.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/__init__.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/deduplicator.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/mysql.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/s_query.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/unique_.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/uploader.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/__init__.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/download_sku_picture.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/error_handler.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/otk.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/pov_city.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/ua_sj.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/pbix/__init__.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/pbix/pbix_refresh.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/pbix/refresh_all.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/redis/__init__.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/redis/getredis.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/selenium/__init__.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/spider/__init__.py +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq.egg-info/SOURCES.txt +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq.egg-info/dependency_links.txt +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/mdbq.egg-info/top_level.txt +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/setup.cfg +0 -0
- {mdbq-4.0.74 → mdbq-4.0.76}/setup.py +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
VERSION = '4.0.76'
|
@@ -2,7 +2,11 @@
|
|
2
2
|
import os
|
3
3
|
import platform
|
4
4
|
import getpass
|
5
|
-
from selenium import webdriver
|
5
|
+
from selenium import webdriver as selenium_webdriver
|
6
|
+
try:
|
7
|
+
from seleniumwire import webdriver as wire_webdriver
|
8
|
+
except ImportError:
|
9
|
+
wire_webdriver = None
|
6
10
|
from selenium.webdriver.chrome.service import Service
|
7
11
|
import re
|
8
12
|
import socket
|
@@ -24,7 +28,7 @@ class GetDriver:
|
|
24
28
|
Selenium ChromeDriver 管理器,支持多平台、代理、无头模式、下载目录、User-Agent等高级配置。
|
25
29
|
支持上下文管理器(with语法),自动资源清理。
|
26
30
|
"""
|
27
|
-
def __init__(self, url=None, headless=False, proxy=None, user_agent=None, download_dir=None, chrome_path=None, chromedriver_path=None, maximize_window=True):
|
31
|
+
def __init__(self, url=None, headless=False, proxy=None, user_agent=None, download_dir=None, chrome_path=None, chromedriver_path=None, maximize_window=True, is_selenium_wire=False):
|
28
32
|
"""
|
29
33
|
初始化GetDriver
|
30
34
|
:param url: 允许的安全站点(用于insecure origin as secure)
|
@@ -52,6 +56,7 @@ class GetDriver:
|
|
52
56
|
import random
|
53
57
|
self.user_agent = user_agents[random.randint(0, len(user_agents) - 1)]
|
54
58
|
self.maximize_window = maximize_window
|
59
|
+
self.is_selenium_wire = is_selenium_wire
|
55
60
|
|
56
61
|
def check_proxy(self):
|
57
62
|
"""
|
@@ -109,7 +114,8 @@ class GetDriver:
|
|
109
114
|
if version_match:
|
110
115
|
return version_match.group(1)
|
111
116
|
except Exception as e:
|
112
|
-
|
117
|
+
pass
|
118
|
+
# print(f"获取Chrome版本失败: {e}")
|
113
119
|
return None
|
114
120
|
|
115
121
|
def _get_chromedriver_version(self, chromedriver_path):
|
@@ -133,7 +139,8 @@ class GetDriver:
|
|
133
139
|
if version_match:
|
134
140
|
return version_match.group(1)
|
135
141
|
except Exception as e:
|
136
|
-
|
142
|
+
pass
|
143
|
+
# print(f"获取Chromedriver版本失败: {e}")
|
137
144
|
return None
|
138
145
|
|
139
146
|
def _check_version_compatibility(self, chrome_path, chromedriver_path):
|
@@ -145,11 +152,11 @@ class GetDriver:
|
|
145
152
|
"""
|
146
153
|
chrome_version = self._get_chrome_version(chrome_path)
|
147
154
|
chromedriver_version = self._get_chromedriver_version(chromedriver_path)
|
148
|
-
print(f"Chrome版本: {chrome_version}, Chromedriver版本: {chromedriver_version}")
|
155
|
+
# print(f"Chrome版本: {chrome_version}, Chromedriver版本: {chromedriver_version}")
|
149
156
|
|
150
157
|
# 如果无法获取版本信息,返回True允许尝试启动
|
151
158
|
if not chrome_version or not chromedriver_version:
|
152
|
-
|
159
|
+
#(f"警告: 无法获取版本信息 - Chrome: {chrome_version}, Chromedriver: {chromedriver_version}")
|
153
160
|
return True, chrome_version, chromedriver_version
|
154
161
|
|
155
162
|
# 提取主版本号进行比较
|
@@ -171,7 +178,10 @@ class GetDriver:
|
|
171
178
|
try:
|
172
179
|
option.binary_location = chrome_path
|
173
180
|
service = Service(chromedriver_path)
|
174
|
-
|
181
|
+
if self.is_selenium_wire and wire_webdriver:
|
182
|
+
driver = wire_webdriver.Chrome(service=service, options=option)
|
183
|
+
else:
|
184
|
+
driver = selenium_webdriver.Chrome(service=service, options=option)
|
175
185
|
if self.maximize_window:
|
176
186
|
driver.maximize_window()
|
177
187
|
|
@@ -206,7 +216,8 @@ class GetDriver:
|
|
206
216
|
|
207
217
|
return driver
|
208
218
|
except Exception as e:
|
209
|
-
|
219
|
+
pass
|
220
|
+
# print(f"创建Chrome WebDriver失败: {e}")
|
210
221
|
return None
|
211
222
|
|
212
223
|
def getdriver(self):
|
@@ -219,7 +230,10 @@ class GetDriver:
|
|
219
230
|
if not self.check_proxy():
|
220
231
|
raise GetDriverException(f"代理不可用或格式错误: {self.proxy}")
|
221
232
|
|
222
|
-
|
233
|
+
if self.is_selenium_wire and wire_webdriver:
|
234
|
+
option = wire_webdriver.ChromeOptions() # 浏览器启动选项
|
235
|
+
else:
|
236
|
+
option = selenium_webdriver.ChromeOptions() # 浏览器启动选项
|
223
237
|
if self.headless:
|
224
238
|
option.add_argument("--headless") # 设置无界面模式
|
225
239
|
option.add_argument("--window-size=1920,1080")
|
@@ -350,11 +364,11 @@ class GetDriver:
|
|
350
364
|
self.driver = driver
|
351
365
|
return driver
|
352
366
|
else:
|
353
|
-
print(f"版本不兼容: Chrome {chrome_version}, Chromedriver {chromedriver_version}")
|
367
|
+
# print(f"版本不兼容: Chrome {chrome_version}, Chromedriver {chromedriver_version}")
|
354
368
|
# 即使版本不兼容也尝试启动,有时可能仍然可以工作
|
355
369
|
driver = self._try_create_driver(chrome_path, chromedriver_path, option, temp_dir)
|
356
370
|
if driver:
|
357
|
-
print("警告: 版本不兼容, 建议更新Chromedriver")
|
371
|
+
# print("警告: 版本不兼容, 建议更新Chromedriver")
|
358
372
|
self.temp_dirs.append(temp_dir)
|
359
373
|
self.driver = driver
|
360
374
|
return driver
|
mdbq-4.0.74/mdbq/__version__.py
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
VERSION = '4.0.74'
|
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
|
File without changes
|
File without changes
|