feat(playwright): 升级 Playwright 版本至 1.55.0升级 Playwright依赖版本以支持最新的浏览器自动化功能,并优化抖音和美团爬虫的登录等待逻辑,
使用 waitForCondition 替代手动轮询,提升代码可读性和稳定性。 - 抖音服务中增加浏览器关闭日志,使用 waitForCondition 设置 30 分钟超时等待登录完成 - 美团服务中同样优化为 waitForCondition 等待所需 cookie,并修正异常日志描述- 移除不必要的空行和旧版轮询逻辑,使代码更简洁
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -14,7 +14,7 @@
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<spring-boot.version>3.4.0</spring-boot.version>
|
||||
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
|
||||
<playwright.version>1.40.0</playwright.version>
|
||||
<playwright.version>1.55.0</playwright.version>
|
||||
<javafx.version>17.0.2</javafx.version>
|
||||
<javafx.maven.plugin.version>0.0.8</javafx.maven.plugin.version>
|
||||
</properties>
|
||||
|
||||
@@ -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,"抖音");
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user