diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 9101fad..99cf9ef 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,31 +5,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -229,7 +209,23 @@
1758529627894
-
+
+
+ 1758619260259
+
+
+
+ 1758619260259
+
+
+
+ 1758619552979
+
+
+
+ 1758619552979
+
+
@@ -239,4 +235,16 @@
+
+
+
+
+ file://$PROJECT_DIR$/electron-vue-template/src/renderer/components/common/AccountManager.vue
+ 34
+
+
+
+
+
+
\ No newline at end of file
diff --git a/erp_client_sb/src/main/java/com/tashow/erp/service/impl/Alibaba1688ServiceImpl.java b/erp_client_sb/src/main/java/com/tashow/erp/service/impl/Alibaba1688ServiceImpl.java
index 7ccfc61..337637b 100644
--- a/erp_client_sb/src/main/java/com/tashow/erp/service/impl/Alibaba1688ServiceImpl.java
+++ b/erp_client_sb/src/main/java/com/tashow/erp/service/impl/Alibaba1688ServiceImpl.java
@@ -9,7 +9,6 @@ import com.tashow.erp.service.Alibaba1688Service;
import com.tashow.erp.utils.Alibaba1688CookieUtil;
import com.tashow.erp.utils.ErrorReporter;
import com.tashow.erp.utils.QiniuUtil;
-import com.tashow.erp.utils.PersistentDriverManager;
import org.openqa.selenium.chrome.ChromeDriver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,8 +42,7 @@ public class Alibaba1688ServiceImpl implements Alibaba1688Service {
private final RestTemplate noSslRestTemplate = createNoSslRestTemplate();
@Autowired
private ErrorReporter errorReporter;
- @Autowired
- private PersistentDriverManager driverManager;
+
private RestTemplate createNoSslRestTemplate() {
try {
TrustManager[] trustManagers = new TrustManager[] {
@@ -282,42 +280,42 @@ public class Alibaba1688ServiceImpl implements Alibaba1688Service {
}
- private String getWeight(List ids) {
- Pattern WEIGHT_PATTERN = Pattern.compile("\"(?:weight|unitWeight)\":\\s*([1-9]\\d*(?:\\.\\d+)?)");
- List weightList = new ArrayList<>();
- ChromeDriver driver = driverManager.getCurrentDriver();
- Set weightSet = new HashSet<>();
- try {
- for (int i = 0; weightSet.size() <= 2; i++) {
- driver.get("https://detail.1688.com/offer/" + ids.get(i) + ".html");
- if(i==0) driver.navigate().refresh();
- if (Objects.equals(driver.getTitle(), "验证码拦截")) {
- driver = driverManager.switchToHeadful();
- while (Objects.equals(driver.getTitle(), "验证码拦截")) {
- Thread.sleep(1000);
- }
- }else if(Objects.equals(driver.getTitle(), "淘宝网 - 淘!我喜欢")){
-
- }
- System.out.println("标题"+driver.getTitle());
- String source = driver.getPageSource();
- Matcher weightMatcher = WEIGHT_PATTERN.matcher(source);
- if (weightMatcher.find()) {
- String weightValue = weightMatcher.group(1);
- String width = weightValue.contains(".") ? (int) (Float.parseFloat(weightValue) * 1000) + "g" : weightValue + "g";
- weightSet.add(width);
- System.out.println("重量"+width);
- }
- Thread.sleep(2000+random.nextInt(3000));
- }
- } catch (InterruptedException e) {
- e.printStackTrace();
- errorReporter.reportDataCollectError("获取重量出错",e);
- }
- weightList.addAll(weightSet);
- weightList.sort((a, b) -> Integer.compare(Integer.parseInt(a.replace("g", "")), Integer.parseInt(b.replace("g", ""))));
- System.out.println("weightList: " +ids+"::::::"+ weightList);
- return weightList.get(1);
- }
+// private String getWeight(List ids) {
+// Pattern WEIGHT_PATTERN = Pattern.compile("\"(?:weight|unitWeight)\":\\s*([1-9]\\d*(?:\\.\\d+)?)");
+// List weightList = new ArrayList<>();
+// ChromeDriver driver = driverManager.getCurrentDriver();
+// Set weightSet = new HashSet<>();
+// try {
+// for (int i = 0; weightSet.size() <= 2; i++) {
+// driver.get("https://detail.1688.com/offer/" + ids.get(i) + ".html");
+// if(i==0) driver.navigate().refresh();
+// if (Objects.equals(driver.getTitle(), "验证码拦截")) {
+// driver = driverManager.switchToHeadful();
+// while (Objects.equals(driver.getTitle(), "验证码拦截")) {
+// Thread.sleep(1000);
+// }
+// }else if(Objects.equals(driver.getTitle(), "淘宝网 - 淘!我喜欢")){
+//
+// }
+// System.out.println("标题"+driver.getTitle());
+// String source = driver.getPageSource();
+// Matcher weightMatcher = WEIGHT_PATTERN.matcher(source);
+// if (weightMatcher.find()) {
+// String weightValue = weightMatcher.group(1);
+// String width = weightValue.contains(".") ? (int) (Float.parseFloat(weightValue) * 1000) + "g" : weightValue + "g";
+// weightSet.add(width);
+// System.out.println("重量"+width);
+// }
+// Thread.sleep(2000+random.nextInt(3000));
+// }
+// } catch (InterruptedException e) {
+// e.printStackTrace();
+// errorReporter.reportDataCollectError("获取重量出错",e);
+// }
+// weightList.addAll(weightSet);
+// weightList.sort((a, b) -> Integer.compare(Integer.parseInt(a.replace("g", "")), Integer.parseInt(b.replace("g", ""))));
+// System.out.println("weightList: " +ids+"::::::"+ weightList);
+// return weightList.get(1);
+// }
}
\ No newline at end of file
diff --git a/erp_client_sb/src/main/java/com/tashow/erp/test/SeleniumWithProfile.java b/erp_client_sb/src/main/java/com/tashow/erp/test/SeleniumWithProfile.java
index 33c45cb..4b66440 100644
--- a/erp_client_sb/src/main/java/com/tashow/erp/test/SeleniumWithProfile.java
+++ b/erp_client_sb/src/main/java/com/tashow/erp/test/SeleniumWithProfile.java
@@ -1,11 +1,7 @@
package com.tashow.erp.test;
-import com.tashow.erp.utils.StealthSelenium;
-import org.openqa.selenium.chrome.ChromeDriver;
-
import java.io.BufferedReader;
import java.io.InputStreamReader;
-import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SeleniumWithProfile {
diff --git a/erp_client_sb/src/main/java/com/tashow/erp/utils/PersistentDriverManager.java b/erp_client_sb/src/main/java/com/tashow/erp/utils/PersistentDriverManager.java
deleted file mode 100644
index 5295458..0000000
--- a/erp_client_sb/src/main/java/com/tashow/erp/utils/PersistentDriverManager.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.tashow.erp.utils;
-
-import jakarta.annotation.PostConstruct;
-import jakarta.annotation.PreDestroy;
-import org.openqa.selenium.Cookie;
-import org.openqa.selenium.chrome.ChromeDriver;
-import org.springframework.stereotype.Component;
-
-import java.util.Set;
-
-@Component
-public class PersistentDriverManager {
-
- private ChromeDriver headlessDriver;
- private ChromeDriver headfulDriver;
- private boolean usingHeadless = true;
-
- @PostConstruct
- public void init() {
- headlessDriver = StealthSelenium.createDriver(true);
- }
-
- public ChromeDriver getCurrentDriver() {
- return usingHeadless ? headlessDriver : headfulDriver;
- }
-
- public ChromeDriver switchToHeadful() {
- if (usingHeadless) {
- if (headfulDriver == null) {
- headfulDriver = StealthSelenium.createDriver(false);
- }
- transferState(headlessDriver, headfulDriver);
- usingHeadless = false;
- }
- return headfulDriver;
- }
-
-
- private void transferState(ChromeDriver from, ChromeDriver to) {
- try {
- String currentUrl = from.getCurrentUrl();
- Set cookies = from.manage().getCookies();
-
- to.get(currentUrl);
- cookies.forEach(cookie -> {
- try {
- to.manage().addCookie(cookie);
- } catch (Exception ignored) {}
- });
- to.navigate().refresh();
- } catch (Exception ignored) {}
- }
-
- @PreDestroy
- public void cleanup() {
- if (headlessDriver != null) {
- headlessDriver.quit();
- }
- if (headfulDriver != null) {
- headfulDriver.quit();
- }
- }
-}
\ No newline at end of file
diff --git a/erp_client_sb/src/main/java/com/tashow/erp/utils/StealthSelenium.java b/erp_client_sb/src/main/java/com/tashow/erp/utils/StealthSelenium.java
deleted file mode 100644
index e13eede..0000000
--- a/erp_client_sb/src/main/java/com/tashow/erp/utils/StealthSelenium.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package com.tashow.erp.utils;
-
-import io.github.bonigarcia.wdm.WebDriverManager;
-import org.openqa.selenium.Dimension;
-import org.openqa.selenium.Point;
-import org.openqa.selenium.chrome.ChromeDriver;
-import org.openqa.selenium.chrome.ChromeOptions;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Selenium反检测工具类
- * 使用方法:ChromeDriver driver = StealthSelenium.createDriver();
- */
-public class StealthSelenium {
- private static final List USER_AGENTS = Arrays.asList(
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
- );
-
- private static final Random random = new Random();
- /**
- * 创建反检测ChromeDriver
- * @return 配置好的ChromeDriver实例
- */
- public static ChromeDriver createDriver() {
- return createDriver(false);
- }
-
- /**
- * 创建反检测ChromeDriver
- * @param headless 是否无头模式
- * @return 配置好的ChromeDriver实例
- */
- public static ChromeDriver createDriver(boolean headless) {
- WebDriverManager.chromedriver().setup();
- ChromeOptions options = createStealthOptions(headless);
- ChromeDriver driver = new ChromeDriver(options);
- applyAntiDetection(driver);
- setRandomWindowProperties(driver);
- driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
- return driver;
- }
- private static ChromeOptions createStealthOptions(boolean headless) {
- ChromeOptions options = new ChromeOptions();
-
- options.addArguments(
- "--disable-blink-features=AutomationControlled",
- "--disable-extensions",
- "--disable-gpu",
- "--disable-dev-shm-usage",
- "--no-sandbox",
- "--disable-background-timer-throttling",
- "--disable-backgrounding-occluded-windows",
- "--disable-renderer-backgrounding",
- "--disable-features=TranslateUI",
- "--disable-ipc-flooding-protection",
- "--exclude-switches=enable-automation",
- "--disable-component-extensions-with-background-pages",
- "--disable-web-security",
- "--disable-client-side-phishing-detection",
- "--lang=zh-CN"
- );
-
- if (headless) {
- options.addArguments("--headless");
- }
-
- String userAgent = USER_AGENTS.get(random.nextInt(USER_AGENTS.size()));
- options.addArguments("--user-agent=" + userAgent);
-
- Map prefs = new HashMap<>();
- prefs.put("profile.default_content_setting_values.notifications", 2);
- prefs.put("profile.default_content_settings.popups", 0);
- options.setExperimentalOption("prefs", prefs);
- options.setExperimentalOption("excludeSwitches", Arrays.asList("enable-automation"));
- options.setExperimentalOption("useAutomationExtension", false);
-
- return options;
- }
-
- private static void applyAntiDetection(ChromeDriver driver) {
- String stealthScript = """
- Object.defineProperty(navigator, 'webdriver', { get: () => undefined });
- delete Object.getPrototypeOf(navigator).webdriver;
-
- window.chrome = { runtime: {}, loadTimes: function() {}, csi: function() {}, app: {} };
-
- Object.defineProperty(navigator, 'permissions', {
- get: () => ({ query: () => Promise.resolve({state: 'granted'}) })
- });
-
- Object.defineProperty(navigator, 'plugins', {
- get: () => Array.from({length: Math.floor(Math.random() * 5) + 2}, (_, i) => ({
- name: `Plugin ${i}`, description: `Plugin Description ${i}`,
- filename: `plugin${i}.dll`, version: `${Math.floor(Math.random() * 10)}.0.0`
- }))
- });
-
- Object.defineProperty(navigator, 'languages', {
- get: () => ['zh-CN', 'zh', 'en-US', 'en']
- });
-
- const screenWidth = 1920 + Math.floor(Math.random() * 100);
- const screenHeight = 1080 + Math.floor(Math.random() * 100);
- Object.defineProperty(screen, 'width', { get: () => screenWidth });
- Object.defineProperty(screen, 'height', { get: () => screenHeight });
- Object.defineProperty(screen, 'availWidth', { get: () => screenWidth });
- Object.defineProperty(screen, 'availHeight', { get: () => screenHeight - 40 });
-
- if (window.document) {
- ['$cdc_asdjflasutopfhvcZLmcfl_', '$chrome_asyncScriptInfo'].forEach(prop => {
- Object.defineProperty(window.document, prop, { get: () => undefined, set: () => {} });
- });
- }
- """;
-
- Map params = new HashMap<>();
- params.put("source", stealthScript);
- driver.executeCdpCommand("Page.addScriptToEvaluateOnNewDocument", params);
-
- String userAgent = USER_AGENTS.get(random.nextInt(USER_AGENTS.size()));
- Map networkParams = new HashMap<>();
- networkParams.put("userAgent", userAgent);
- networkParams.put("acceptLanguage", "zh-CN,zh;q=0.9,en;q=0.8");
- networkParams.put("platform", "Win32");
- driver.executeCdpCommand("Network.setUserAgentOverride", networkParams);
- }
-
- private static void setRandomWindowProperties(ChromeDriver driver) {
- int width = 1200 + random.nextInt(400);
- int height = 800 + random.nextInt(300);
- driver.manage().window().setSize(new Dimension(width, height));
- driver.manage().window().setPosition(new Point(random.nextInt(100), random.nextInt(100)));
- }
-}
\ No newline at end of file