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.
Files changed (35) hide show
  1. {mdbq-4.0.74 → mdbq-4.0.76}/PKG-INFO +2 -2
  2. mdbq-4.0.76/mdbq/__version__.py +1 -0
  3. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/selenium/get_driver.py +25 -11
  4. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq.egg-info/PKG-INFO +2 -2
  5. mdbq-4.0.74/mdbq/__version__.py +0 -1
  6. {mdbq-4.0.74 → mdbq-4.0.76}/README.txt +0 -0
  7. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/__init__.py +0 -0
  8. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/log/__init__.py +0 -0
  9. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/log/mylogger.py +0 -0
  10. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/myconf/__init__.py +0 -0
  11. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/myconf/myconf.py +0 -0
  12. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/__init__.py +0 -0
  13. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/deduplicator.py +0 -0
  14. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/mysql.py +0 -0
  15. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/s_query.py +0 -0
  16. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/unique_.py +0 -0
  17. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/mysql/uploader.py +0 -0
  18. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/__init__.py +0 -0
  19. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/download_sku_picture.py +0 -0
  20. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/error_handler.py +0 -0
  21. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/otk.py +0 -0
  22. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/pov_city.py +0 -0
  23. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/other/ua_sj.py +0 -0
  24. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/pbix/__init__.py +0 -0
  25. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/pbix/pbix_refresh.py +0 -0
  26. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/pbix/refresh_all.py +0 -0
  27. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/redis/__init__.py +0 -0
  28. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/redis/getredis.py +0 -0
  29. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/selenium/__init__.py +0 -0
  30. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq/spider/__init__.py +0 -0
  31. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq.egg-info/SOURCES.txt +0 -0
  32. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq.egg-info/dependency_links.txt +0 -0
  33. {mdbq-4.0.74 → mdbq-4.0.76}/mdbq.egg-info/top_level.txt +0 -0
  34. {mdbq-4.0.74 → mdbq-4.0.76}/setup.cfg +0 -0
  35. {mdbq-4.0.74 → mdbq-4.0.76}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: mdbq
3
- Version: 4.0.74
3
+ Version: 4.0.76
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -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
- print(f"获取Chrome版本失败: {e}")
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
- print(f"获取Chromedriver版本失败: {e}")
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
- print(f"警告: 无法获取版本信息 - Chrome: {chrome_version}, Chromedriver: {chromedriver_version}")
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
- driver = webdriver.Chrome(service=service, options=option)
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
- print(f"创建Chrome WebDriver失败: {e}")
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
- option = webdriver.ChromeOptions() # 浏览器启动选项
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
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: mdbq
3
- Version: 4.0.74
3
+ Version: 4.0.76
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -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