当前位置: 首页 > wzjs >正文

如何优化网站图片晶鹰建设摩托车官网

如何优化网站图片,晶鹰建设摩托车官网,wordpress引用图片,漂亮的网站设计基于Java开发的浏览器自动化MCP服务器 这是使用 Java 语言开发的一个简单的浏览器自动化 MCP 服务器,并通过 Cherry Studio 进行测试。 功能概述 支持导航到指定 URL提供截图功能以捕获页面状态支持点击、选择、填写表单字段等常见浏览器操作集成日志记录和异常处…

基于Java开发的浏览器自动化MCP服务器

这是使用 Java 语言开发的一个简单的浏览器自动化 MCP 服务器,并通过 Cherry Studio 进行测试。

功能概述

  • 支持导航到指定 URL
  • 提供截图功能以捕获页面状态
  • 支持点击、选择、填写表单字段等常见浏览器操作
  • 集成日志记录和异常处理机制

安装依赖

将以下 Maven 依赖添加到你的项目中:

添加playwright依赖

<dependency><groupId>com.microsoft.playwright</groupId><artifactId>playwright</artifactId><version>1.41.2</version>
</dependency>

使用 MCP 官方的 Java SDK

<dependency><groupId>io.modelcontextprotocol.sdk</groupId><artifactId>mcp</artifactId><version>0.10.0</version>
</dependency>

对于 HTTP SSE 传输实现,添加以下依赖之一:

基于 Spring WebFlux 的 SSE 客户端和服务器传输

<dependency><groupId>io.modelcontextprotocol.sdk</groupId><artifactId>mcp-spring-webflux</artifactId>
</dependency>

基于 Spring WebMVC 的 SSE 服务器传输

<dependency><groupId>io.modelcontextprotocol.sdk</groupId><artifactId>mcp-spring-webmvc</artifactId>
</dependency>

代码实现

初始化Playwright

  • 创建 Playwright 实例并启动一个无头 Edge 浏览器。
  • 打开一个新的页面对象 (Page) 用于后续操作。
private Playwright playwright;
private Browser browser;
private Page page;/*** 初始化Playwright*/
private void initializePlaywright() {if (playwright == null) {playwright = Playwright.create();}if (browser == null) {browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setChannel("msedge").setHeadless(false));}if (page == null) {page = browser.newPage();}
}

工具方法

创建MCP服务中的工具,这里只展示navigate导航到指定 URL。

/*** 创建一个工具,用于导航到指定URL* @return 工具结果*/
private McpServerFeatures.SyncToolSpecification navigate(){String desc = """navigate to a URL""";String schema = """{"type" : "object","properties" : {"url" : {"type" : "string"}}}""";return new McpServerFeatures.SyncToolSpecification(new McpSchema.Tool("navigate", desc, schema),(exchange, arguments) -> {List<McpSchema.Content> result = new ArrayList<>();try {String url = (String) arguments.get("url");initializePlaywright();page.navigate(url);result.add(new McpSchema.TextContent("Navigated to " + url));return new McpSchema.CallToolResult(result, false);}catch (Exception e){// 处理异常result.add(new McpSchema.TextContent(e.getMessage()));return new McpSchema.CallToolResult(result, true);}});
}

启动MCP服务

  • 在 Spring 的 @PostConstruct 注解下启动 MCP 同步服务器。
  • 配置了服务器信息(名称、版本)和能力(支持工具、日志等)。
  • 添加多个工具到服务器中,每个工具都对应一种网页操作,如导航、截图、点击等。
@PostConstruct
public void start() {// 创建并配置MCP同步服务器McpSyncServer syncServer = McpServer.sync(transportProvider).serverInfo("PlayWright-Mcp-Server", "1.0.0").capabilities(McpSchema.ServerCapabilities.builder().tools(true).logging().build()).build();try {// 添加工具、资源和提示syncServer.addTool(navigate());syncServer.addTool(parseThePage());syncServer.addTool(screenshot());syncServer.addTool(click());syncServer.addTool(iframeClick());syncServer.addTool(select());syncServer.addTool(fill());syncServer.addTool(hover());syncServer.addTool(evaluate());syncServer.addTool(consoleLogs());syncServer.addTool(closePage());// 发送日志通知syncServer.loggingNotification(McpSchema.LoggingMessageNotification.builder().level(McpSchema.LoggingLevel.DEBUG).logger("custom-logger").data("Server initialized").build());}catch (Exception e){// 处理异常,例如打印错误信息log.error("创建JSON Schema时发生错误: {}" , e.getMessage());e.printStackTrace();}
}

关闭资源

  • 使用 @PreDestroy 注解确保在 Bean 销毁前释放 Playwright 资源(关闭页面、浏览器、Playwright 实例)。
@PreDestroy
public void close() {if (page != null) {page.close();page = null;}if (browser != null) {browser.close();browser = null;}if (playwright != null) {playwright.close();playwright = null;}
}

驱动安装

PlayWright需要浏览器驱动,程序自动检测是否存在驱动,不存在就会自动安装,但安装取决于网路,经常会失败,所以还是手动安装的好。

mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="install"

默认安装三大浏览器驱动webkit、chromium、firefox。
你还可以通过提供参数来安装特定的浏览器:

mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="install chromium"

客户端测试

  1. 配置mcp服务

在这里插入图片描述

  1. 提问
    在这里插入图片描述

代码地址

https://github.com/daydayup-zyn/Playwright-MCP


文章转载自:

http://43CXFTxD.mnsts.cn
http://eH6O34mt.mnsts.cn
http://LADQBGcG.mnsts.cn
http://2z3Q5jTA.mnsts.cn
http://h4R60hTX.mnsts.cn
http://Y7X0wYtl.mnsts.cn
http://keTYxFJU.mnsts.cn
http://2rQXJg1I.mnsts.cn
http://FXUPcB9T.mnsts.cn
http://xd04gXAE.mnsts.cn
http://tvAnC9C1.mnsts.cn
http://F49Eu1Ur.mnsts.cn
http://QahBn6Qx.mnsts.cn
http://ysD5VsJ2.mnsts.cn
http://eF0uCU2I.mnsts.cn
http://WjcEyhHi.mnsts.cn
http://5XEtDJ9d.mnsts.cn
http://avaxS9B6.mnsts.cn
http://v8zQqIbM.mnsts.cn
http://b535EnW5.mnsts.cn
http://cHYGi78S.mnsts.cn
http://xl6yphFH.mnsts.cn
http://P7bIjXTe.mnsts.cn
http://bw8Ep5l5.mnsts.cn
http://qPEwqhaZ.mnsts.cn
http://sqGjqbSU.mnsts.cn
http://n6KK9Yh4.mnsts.cn
http://i75VTX8O.mnsts.cn
http://AUb9EhiU.mnsts.cn
http://hSu4tGNQ.mnsts.cn
http://www.dtcms.com/wzjs/730863.html

相关文章:

  • 800多块做网站网络移动公司的网站建设
  • 沈阳定制网站开发专业服务好的网站设计制作
  • 招聘销售员网站建设网络推广无锡工程建设信息网站
  • 响应式高端网站江苏大才建设集团网站
  • 自己如何建设校园网站杭州品牌网站建设公司
  • 建设一个网站需要什么手续建设银行宁波招聘网站
  • 电子商务网站的功能分析自己建设网站用哪个
  • 嘉兴做网站公司个人网站开发可行性报告
  • 网站建设搜索优环球易购做中东的网站
  • 门户网站系统建设招标文件装修设计图免费软件
  • 口腔医院网站优化服务商免费h5页面应用制作
  • 网站开发可以用gif吗深圳福田 外贸网站建设
  • 网站样式用什么做的汉阳网站推广优化
  • 找人开发软件去什么网站申请网站域名多少钱
  • 网站建设的目标与思路泰安微网站建设
  • 大连做网站的中海建筑建设有限公司网站
  • 织梦网站栏目增加2023年生鲜电商交易规模超6000亿
  • 网站和服务器是什么关系wordpress统计蜘蛛
  • 网站做全好吗百度优化 几个网站内容一样
  • 网站建设交流论坛地址编程培训机构
  • 奢侈品商城网站建设方案网站建设的必要性’
  • 做网站手把手多语言商城系统
  • 触屏手机网站建设手机如何自己编程做游戏
  • 微信网站合同wordpress 初始化 数据库
  • 适合个人做的网站有哪些东西在线购物网站建设流程图
  • 报社网站开发做什么查看网站备案号
  • 宝安网站(建设深圳信科)烟台网站建设哪家好
  • 杭州 高端网站建设个人网站样式
  • html静态网站怎么放在网站上公司网站建设一年多少钱
  • 界面十分好看的网站google搜索引擎入口