From d59eea3f304a579c74c2f1861834f7de96619b64 Mon Sep 17 00:00:00 2001 From: wangchunxiang <526328077@qq.com> Date: Thu, 16 Oct 2025 14:22:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(playwright):=20=E5=8D=87=E7=BA=A7=20Playwr?= =?UTF-8?q?ight=20=E7=89=88=E6=9C=AC=E8=87=B3=201.55.0=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=20Playwright=E4=BE=9D=E8=B5=96=E7=89=88=E6=9C=AC=E4=BB=A5?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=9C=80=E6=96=B0=E7=9A=84=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E5=99=A8=E8=87=AA=E5=8A=A8=E5=8C=96=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E6=8A=96=E9=9F=B3=E5=92=8C=E7=BE=8E?= =?UTF-8?q?=E5=9B=A2=E7=88=AC=E8=99=AB=E7=9A=84=E7=99=BB=E5=BD=95=E7=AD=89?= =?UTF-8?q?=E5=BE=85=E9=80=BB=E8=BE=91=EF=BC=8C=20=E4=BD=BF=E7=94=A8=20wai?= =?UTF-8?q?tForCondition=20=E6=9B=BF=E4=BB=A3=E6=89=8B=E5=8A=A8=E8=BD=AE?= =?UTF-8?q?=E8=AF=A2=EF=BC=8C=E6=8F=90=E5=8D=87=E4=BB=A3=E7=A0=81=E5=8F=AF?= =?UTF-8?q?=E8=AF=BB=E6=80=A7=E5=92=8C=E7=A8=B3=E5=AE=9A=E6=80=A7=E3=80=82?= =?UTF-8?q?=20-=20=E6=8A=96=E9=9F=B3=E6=9C=8D=E5=8A=A1=E4=B8=AD=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=B5=8F=E8=A7=88=E5=99=A8=E5=85=B3=E9=97=AD=E6=97=A5?= =?UTF-8?q?=E5=BF=97=EF=BC=8C=E4=BD=BF=E7=94=A8=20waitForCondition=20?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=2030=20=E5=88=86=E9=92=9F=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E7=AD=89=E5=BE=85=E7=99=BB=E5=BD=95=E5=AE=8C=E6=88=90=20-=20?= =?UTF-8?q?=E7=BE=8E=E5=9B=A2=E6=9C=8D=E5=8A=A1=E4=B8=AD=E5=90=8C=E6=A0=B7?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=BA=20waitForCondition=20=E7=AD=89?= =?UTF-8?q?=E5=BE=85=E6=89=80=E9=9C=80=20cookie=EF=BC=8C=E5=B9=B6=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E5=BC=82=E5=B8=B8=E6=97=A5=E5=BF=97=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?-=20=E7=A7=BB=E9=99=A4=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84?= =?UTF-8?q?=E7=A9=BA=E8=A1=8C=E5=92=8C=E6=97=A7=E7=89=88=E8=BD=AE=E8=AF=A2?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BD=BF=E4=BB=A3=E7=A0=81=E6=9B=B4?= =?UTF-8?q?=E7=AE=80=E6=B4=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../com/fantaibao/service/FtbCrawlNetDy.java | 14 +++++-------- .../com/fantaibao/service/FtbCrawlNetMt.java | 20 ++++++------------- 3 files changed, 12 insertions(+), 24 deletions(-) diff --git a/pom.xml b/pom.xml index 1486244..3602964 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ UTF-8 3.4.0 3.8.1 - 1.40.0 + 1.55.0 17.0.2 0.0.8 diff --git a/src/main/java/com/fantaibao/service/FtbCrawlNetDy.java b/src/main/java/com/fantaibao/service/FtbCrawlNetDy.java index 3929dfc..7f1c481 100644 --- a/src/main/java/com/fantaibao/service/FtbCrawlNetDy.java +++ b/src/main/java/com/fantaibao/service/FtbCrawlNetDy.java @@ -37,21 +37,17 @@ public class FtbCrawlNetDy extends AbstractFtbCrawlNetBase implements FtbCrawlNe // 监听浏览器关闭事件释放资源 browser.onDisconnected((brow) -> { if (page != null && !page.isClosed()) { + log.info("抖音浏览器关闭事件"); page.close(); } }); // 导航到登录页面 page.navigate(GlobalConfig.dyLoginPage, new Page.NavigateOptions().setTimeout(6000000)); - while (!dyCookie.get()) { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - log.warn("等待过程中被中断", e); - Thread.currentThread().interrupt(); - break; - } - } + // 设置30分钟登录超时时间 + Page.WaitForConditionOptions waitForConditionOptions = new Page.WaitForConditionOptions(); + waitForConditionOptions.setTimeout(30*60*1000); + page.waitForCondition(dyCookie::get,waitForConditionOptions); // 关闭页面 super.showSuccessAlertAndClose(page,"抖音"); } diff --git a/src/main/java/com/fantaibao/service/FtbCrawlNetMt.java b/src/main/java/com/fantaibao/service/FtbCrawlNetMt.java index 66dafa7..536a866 100644 --- a/src/main/java/com/fantaibao/service/FtbCrawlNetMt.java +++ b/src/main/java/com/fantaibao/service/FtbCrawlNetMt.java @@ -10,7 +10,6 @@ import org.springframework.stereotype.Component; import java.util.concurrent.atomic.AtomicBoolean; - @Component(value = "ftbCrawlNetMt") @Slf4j public class FtbCrawlNetMt extends AbstractFtbCrawlNetBase implements FtbCrawlNetBase { @@ -36,6 +35,7 @@ public class FtbCrawlNetMt extends AbstractFtbCrawlNetBase implements FtbCrawlNe // 监听浏览器关闭事件释放资源 browser.onDisconnected((brow) -> { if (page != null && !page.isClosed()) { + log.info("美团浏览器关闭事件"); page.close(); } }); @@ -43,22 +43,14 @@ public class FtbCrawlNetMt extends AbstractFtbCrawlNetBase implements FtbCrawlNe // 导航到登录页面 page.navigate(GlobalConfig.mtLoginPage, new Page.NavigateOptions().setTimeout(60000.0)); - - // 等待用户登录并获取所需cookie - while (!(mtCookie.get() && dzCookie.get())) { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - log.warn("等待过程中被中断", e); - Thread.currentThread().interrupt(); - break; - } - } - log.info("已成功获取美团所有必需的cookie,关闭页面"); + // 设置30分钟登录超时时间 + Page.WaitForConditionOptions waitForConditionOptions = new Page.WaitForConditionOptions(); + waitForConditionOptions.setTimeout(30*60*1000); + page.waitForCondition(() -> mtCookie.get() && dzCookie.get(),waitForConditionOptions); // 关闭页面 super.showSuccessAlertAndClose(page,"美团"); } catch (Exception e) { - log.error("执行cookie拦截时发生错误", e); + log.error("执行打开浏览器时发生错误", e); } }