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

LangChain网页自动化PlayWrightBrowserToolkit

Automated Web Testing | Reflect 可以编写prompt,通过openai解析,并调用agent来运行测试用例,达到手动的测试用例自动运行。从视频的角度看还是很流畅。微软PlayWright的MCP也很早就上线。我们先不用MCP,用langchain的PlayWrightBrowserToolkit,来实现看看效果怎样,有什么问题

我们还是用modelscope的免费tokens来做测试,

安装playwright和内置浏览器:

pip install --upgrade --quiet playwright
pip install --upgrade --quiet lxml
playwright install

大模型调用agent 

from langchain.agents import initialize_agent, AgentTypefrom dotenv import load_dotenv
load_dotenv(dotenv_path=".env")
from langchain_community.tools.playwright.utils import create_async_playwright_browser
from langchain_community.agent_toolkits import PlayWrightBrowserToolkit
from langchain_modelscope import ModelScopeChatEndpoint
llm = ModelScopeChatEndpoint(model="Qwen/Qwen2.5-Coder-32B-Instruct")import nest_asyncionest_asyncio.apply()  # 仅适用于Jupyter Notebook环境async_browser = create_async_playwright_browser()
toolkit = PlayWrightBrowserToolkit.from_browser(async_browser=async_browser)
tools = toolkit.get_tools()# 初始化Agent
agent_chain = initialize_agent(tools,llm,agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,verbose=True,
)async def main():response = await agent_chain.arun("导航到https://www.runoob.com/,点击id='cate4'的元素,数据库菜单栏下有哪些教程?")print(response)import asyncio
asyncio.run(main())

一个简单操作:导航到https://www.runoob.com/,点击id='cate4'的元素,数据库菜单栏下有哪些教程?

如此简单的操作,成功概率并不高。prompt里原来使用点击左侧的数据库,但是测试结果是上下左右是不分的,基本上是通过抓取网页的文本和链接等输入大模型来推测需要操作的元素是哪个,所以简单的人类语言描述的元素是无法找到的,那么最后只能按照接近代码方式来修改

日志如下,具体操作都有描述,第二步点击元素解析对了,竟然找不到元素

> Entering new AgentExecutor chain...
Action:
```
{"action": "navigate_browser","action_input": "https://www.runoob.com/"
}
```
Observation: Navigating to https://www.runoob.com/ returned status code 200
Thought:Thought: Now that we are on the Runoob homepage, I will click on the element with id 'cate4' to open the database menu.
Action:
```
{"action": "click_element","action_input": {"selector": "#cate4"}
}
```
Observation: Unable to click on element '#cate4'
Thought:It seems there might be an issue with directly clicking the element with the ID 'cate4'. Let's first verify if the element is present and visible on the page. We can use the `get_elements` tool to check for the presence of the element.Action:
```
{"action": "get_elements","action_input": {"selector": "#cate4", "attributes": ["id", "innerText"]}
}
```
Observation: [{"id": "cate4", "innerText": "   数据库"}]
Thought:The element with id 'cate4' is present on the page. However, it seems like it might be part of a dropdown menu that requires interaction to expand and show its sub-items. Let's try to simulate a mouse hover over the element to see if it triggers the dropdown menu to appear.Since we cannot directly simulate a hover action, let's try clicking on the parent element or another element that might trigger the dropdown. If that doesn't work, we might need to look for a different approach.First, let's try clicking on the element again to see if it expands the menu.Action:
```
{"action": "click_element","action_input": {"selector": "#cate4"}
}
```
Observation: Unable to click on element '#cate4'
Thought:It appears that directly clicking on the element with id 'cate4' is not working as expected. This could be due to the way the website handles interactions, possibly requiring JavaScript events that aren't being triggered by our simple click action.Let's try a different approach. We'll attempt to find a parent element or a sibling element that might be responsible for expanding the dropdown menu. Alternatively, we can inspect the HTML structure to see if there's a specific class or attribute that we can target to trigger the dropdown.First, let's extract the HTML structure around the element with id 'cate4' to understand how the dropdown is structured.Action:
```
{"action": "get_elements","action_input": {"selector": "#cate4", "attributes": ["outerHTML"]}
}
```
Observation: []
Thought:It seems that the element with id 'cate4' does not have any outerHTML returned, which suggests that the element might be dynamically loaded or hidden in a way that makes it difficult to interact with using our current methods. Let's try a different approach by extracting the entire HTML content of the page and searching for the relevant section manually.We'll use the `extract_text` tool to get the full text content of the page and then analyze it to find the tutorials under the "数据库" (Database) category.Action:
```
{"action": "extract_text","action_input": {}
}
```Observation: 菜鸟教程 - 学的不仅是技术,更是梦想! 菜鸟教程 -- 学的不仅是技术,更是梦想! 首页 菜鸟工具 菜鸟笔记 参考手册 用户笔记 测验/考试 本地书签 HTML 手册 Javascript CSS 1,2,3 Zepto 中文手册 Flat UI PostgreSQL 手册 HTML 测验 HTML5 测验 XHTML 测验 CSS 测验 JavaScript 测验 jQuery 测验 XML 测验 ASP 测验 PHP 测验 SQL 测验 Python 测验 全部教程 HTML / CSS JavaScript 服务端 数据库 AI & 数据分析 移动端 开发工具 XML 教程 ASP.NET Web Service 网站建设 HTML / CSS 【学习 HTML】 HTML,即超文本标记语言(Hyper Text Markup Language) 【学习 HTML5】 HTML5 是下一代 HTML 标准 【学习 CSS】 层叠样式表(Cascading StyleSheet) 【学习 CSS3】 CSS3是CSS技术的升级版本 【学习 Tailwind CSS】 功能丰富的、实用性优先的 CSS 框架 【学习 Bootstrap4】 Bootstrap4 前端框架 【学习 Bootstrap5】 Bootstrap5 目前是 Bootstrap 的最新版本 【学习 Font Awesome】 Font Awesome 是一套绝佳的图标字体库和CSS框架。 【学习 Foundation】 Foundation 用于开发响应式的 HTML, CSS and JavaScript 框架 JavaScript 【学习 JavaScript】 JavaScript 是 Web 的编程语言 【学习 HTML DOM】 HTML DOM 定义了访问和操作 HTML 文档的标准方法 【学习 jQuery】 jQuery 是一个 JavaScript 库 【学习 AngularJS】 AngularJS 通过新的属性和表达式扩展了 HTML 【学习 AngularJS2】 AngularJS2 是一款开源JavaScript库,由Google维护。 【学习 Vue.js】 Vue.js 是一套构建用户界面的渐进式框架。 【学习 Vue3】 Vue 是一套构建用户界面的渐进式框架。 【学习 React】 React 是一个用于构建用户界面的 JAVASCRIPT 库 【学习 Next.js】 基于 React 的开源框架 【学习 TypeScript】 TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准 【学习 jQuery UI】 jQuery UI 是建立在 jQuery上的一组用户界面交互、特效、小部件及主题 【学习 jQuery EasyUI 】 jQuery EasyUI 是一个基于 jQuery 的框架,集成了各种用户界面插件 【学习 Node.js】 Node.js 是运行在服务端的 JavaScript 【学习 AJAX】 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML) 【学习 JSON】 JSON 是存储和交换文本信息的语法 【学习 Echarts】 ECharts 是一个使用 JavaScript 实现的开源可视化库 【学习 Chart.js】 Chart.js 是一个简单、灵活的 JavaScript 图表工具 【学习 Highcharts】 Highcharts 是一个用纯JavaScript编写的一个图表库 【学习 Google 地图】 Google 地图接口使用说明 服务端 【学习 Python】 Python3.x 版本,未来主流版本。 【学习 Python2.x】 Python 是一种面向对象、解释型计算机程序设计语言 【学习 Linux】 Linux是一套免费使用和自由传播的类Unix操作系统 【学习 Docker】 Docker 是一个开源的应用容器引擎,基于 Go 语言 【学习 Ruby】 一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言 【学习 Java】 一种可以撰写跨平台应用软件的面向对象的程序设计语言 【学习 C】 一门通用计算机编程语言 【学习 C++】 C++是在C语言的基础上开发的一种通用编程语言 【学习 Perl】 Perl 是高级、通用、直译式、动态的程序语言 【学习 Servlet 】 运行在 Web 服务器或应用服务器上的程序 【学习 JSP】 JSP与PHP、ASP、ASP.NET等语言类似,运行在服务端的语言 【学习 Lua】 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放 【学习 Rust】 Rust 语言是一种高效、可靠的通用高级语言 【学习 Zig】 Zig 是一个命令式、通用、静态类型、编译的系统编程语言 【学习 Scala】 Scala 是一门多范式(multi-paradigm)的编程语言。 【学习 Go】 Go语言是谷歌推出的一种全新的编程语言 【学习 PHP】 PHP 是一种通用开源脚本语言 【数据结构与算法】 数据结构是计算机中存储、组织数据的方式。 【学习 Django】 Django 是一个开放源代码的Web应用框架,由Python写成 【学习 FastAPI】 FastAPI 是一个用于构建 API 的 web 框架 【学习 Flask】 Flask 是一个用 Python 编写的轻量级 Web 应用框架 【学习 Pillow】 Pillow 是 Python 中处理图像的主要库 【学习 Zookeeper】 ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务 【设计模式】 设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用 【正则表达式】 正则表达式是对字符串操作的一种逻辑公式 【学习 Maven】 Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理 【学习 CMake】 CMake 是个一个开源的跨平台自动化建构系统 【学习 Verilog】 Verilog 是一种用于设计数字电路的硬件描述语言,主要应用在集成电路系统中 【学习 ASP】 ASP(Active Server Pages 动态服务器页面)是一种生成动态交互性网页的强有力工具 【学习 AppML】 AppML 是一个为web应用程序设计的HTML扩展框 【学习 VBScript】 一种微软环境下的轻量级的解释型语言 数据库 【学习 SQL】 结构化查询语言(Structured Query Language) 【学习 MySQL】 MySQL 是一个关系型数据库管理系统 【学习 PostgreSQL】 PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS) 【学习 SQLite】 一款轻型的数据库 【学习 MongoDB】 Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql) 【学习 Redis】 一个高性能的key-value数据库 【学习 Memcached】 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。 AI & 数据分析 【学习 Python】 Python3.x 版本,未来主流版本。 【学习 NumPy】 NumPy 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算 【学习 Pandas】 Pandas 是 Python 语言的一个扩展程序库,用于数据分析 【学习 Matplotlib】 Matplotlib 是 Python 的绘图库 【学习 Scipy】 SciPy 是一个开源的 Python 算法库和数学工具包。 【学习 Pytorch】 Pytorch 是一个开源的机器学习库。 【学习 TensorFlow】 TensorFlow 是一个开源机器学习框架。 【学习 Ollama】 开源的本地大语言模型运行框架。 【机器学习】 机器学习是让机器通过经验(数据)来做决策和预测。 【学习 scikit-learn】 scikit-learn 是一个开源的机器学习库。 【学习 R】 R 语言是为数学研究工作者设计的一种数学编程语言 【学习 OpenCV】 开源的计算机视觉和机器学习软件库 【学习 Selenium】 用于自动化 Web 浏览器操作的工具集 【学习 Julia】 Julia 是一个面向科学计算的高性能动态高级程序设计语言 【量化交易】 利用计算机编程来进行金融交易的一种策略。 【学习 Dash】 构建数据分析和数据可视化的 Web 应用程序。 移动端 【学习 Android】 Android 是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备 【学习 Swift】 Swift 是一种支持多编程范式和编译式的编程语言,用于开发 iOS,OS X 和 watchOS应用程序。 【学习 jQuery Mobile】 jQuery Mobile是jQuery 在手机上和平板设备上的版本 【学习 ionic】 ionic 是一个强大的 HTML5 应用程序开发框架(HTML5 Hybrid Mobile App Framework )。 【学习 Kotlin】 在 Java 虚拟机上运行的静态类型编程语言,Android 官方开发语言 开发工具 【学习 VS Code】 VS Code 是由微软开发的一个现代化、轻量级的代码编辑器 【学习 PyCharm】 专门用于 Python 编程的集成开发环境(IDE) 【学习 Swagger】 RESTful API 的开源工具集 【学习 RESTful API】 RESTful API 是应用程序之间通信的标准 【学习 Eclipse】 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台 【学习 Git】 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目 【学习 Svn】 SVN 是一个开放源代码的版本控制系统 【学习 Markdown】 Markdown 是一种轻量级标记语言 XML 教程 【学习 XML】 XML 被设计用来传输和存储数据 【学习 DTD】 DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块 【学习 XML DOM】 XML DOM 定义访问和操作XML文档的标准方法 【学习 XSLT】 XSL 是一个 XML 文档的样式表语言,XSLT 指 XSL 转换 【学习 XPath】 XPath 是一门在 XML 文档中查找信息的语言 【学习 XQuery】 XQuery 被设计用来查询 XML 数据 【学习 XLink】 XLink 定义在 XML 文档中创建超级链接的标准方法 【学习 XPointer】 XPointer是在可扩展标志语言(XML)文件中定位数据的一种语言 【学习 XML Schema】 XML Schema 描述了 XML文档的结构 【学习 XSL-FO】 XSL-FO 指可扩展样式表语言格式化对象 【学习 SVG】 SVG 使用 XML 格式定义图像 ASP.NET 【学习 ASP.NET】 ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架 【学习 C#】 C# 是一个简单的、现代的、通用的、面向对象的编程语言 【学习 Web Pages】 Web Pages 是三种网页编程模型中的一种,用于创建网站和web 应用程序 【学习 Razor】 Razor 是一种标记语法,可以让您将基于服务器的代码(Visual Basic 和 C#)嵌入到网页中 【学习 MVC】 MVC(Model View Controller 模型-视图-控制器) 【学习 Web Forms】 Web Forms 是三种创建 ASP.NET 网站和 Web 应用程序的编程模式中的一种 Web Service 【学习 Web Service】 Web Service 脚本平台需支持 XML + HTTP 【学习 WSDL】 WSDL是一门基于 XML 的语言,用于描述 Web Service 以及如何对它们进行访问 【学习 SOAP】 SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息 【学习 RSS】 RSS基于XML标准,在互联网上被广泛采用的内容包装和投递协议 【学习 RDF】 DF(资源描述框架)是描述网络资源的 W3C 标准 网站建设 【学习 HTTP】 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议 【网站建设指南】 网站建设指导课程 【浏览器信息】 对于网站开发人员来说,浏览器信息和统计数据都是非常重要的 【网络协议】 定义设备之间通信规则和标准的集合 【网站主机教程】 如果您希望向全世界发布自己的网站,那么您的网站就需要被放置于一个 WEB 服务器 【学习 TCP/IP】 TCP/IP 是因特网的通信协议 【学习 W3C】 W3C 让每个人都能在互联网上分享资源 【网站品质】 学习如何创建高质量的web网站 HTML / CSS HTML HTML5 CSS CSS3 Tailwind CSS Bootstrap4 Bootstrap5 Font Awesome Foundation JavaScript JavaScript HTML DOM jQuery AngularJS AngularJS2 Vue.js Vue3 React Next.js TypeScript jQuery UI jQuery EasyUI Node.js AJAX JSON Echarts Chart.js Highcharts Google 地图 服务端 Python Python2.x Linux Docker Ruby Java C C++ Perl Servlet JSP Lua Rust Zig Scala Go PHP 数据结构与算法 Django FastAPI Flask Pillow Zookeeper 设计模式 正则表达式 Maven CMake Verilog ASP AppML VBScript 数据库 SQL MySQL PostgreSQL SQLite MongoDB Redis Memcached AI & 数据分析 Python NumPy Pandas Matplotlib Scipy Pytorch TensorFlow Ollama 机器 scikit-learn R OpenCV Selenium Julia 量化交易 Dash 移动端 Android Swift jQuery Mobile ionic Kotlin 开发工具 VS Code PyCharm Swagger RESTful API Eclipse Git Svn Markdown XML 教程 XML DTD XML DOM XSLT XPath XQuery XLink XPointer XML Schema XSL-FO SVG ASP.NET ASP.NET C# Web Pages Razor MVC Web Forms Web Service Web Service WSDL SOAP RSS RDF 网站建设 HTTP 网站建设指南 浏览器信息 网络协议 网站主机教程 TCP/IP W3C 网站品质 在线实例 · HTML 实例 · CSS 实例 · JavaScript 实例 · Ajax 实例 · jQuery 实例 · XML 实例 · Java 实例 字符集&工具 · HTML 字符集设置 · HTML ASCII 字符集 · JS 混淆/加密 · PNG/JPEG 图片压缩 · HTML 拾色器 · JSON 格式化工具 · 随机数生成器 最新更新 · PyTorch 模型部署 · PyTorch 模型保... · PyTorch 实例 &#... · PyTorch 实例 &#... · PyTorch torchvi... · PyTorch torch.o... · TensorFlow 生态... 站点信息 · 意见反馈 · 免责声明 · 关于我们 · 文章归档 关注微信 Copyright © 2013-2025 菜鸟教程 runoob.com All Rights Reserved. 备案号: 闽ICP备15012807号-1 微信关注
Thought:Thought: From the extracted text, I can see that the "数据库" (Database) section contains links to various tutorials. Let's extract the hyperlinks from the page and filter them to find the ones related to the database category.Action:
```
{"action": "extract_hyperlinks","action_input": {"absolute_urls": true}
}
```
Observation: ["https://www.runoob.com/quality/quality-tutorial.html", "https://www.runoob.com/tags/html-ascii.html", "https://www.runoob.com/jsp/jsp-tutorial.html", "https://www.runoob.com/quiz/sql-quiz.html", "https://www.runoob.com/vue2/vue-tutorial.html", "https://www.runoob.com/jeasyui/jqueryeasyui-tutorial.html", "https://www.runoob.com/quiz/javascript-quiz.html", "mailto:admin@runoob.com", "https://www.runoob.com/quiz/xml-quiz.html", "https://www.runoob.com/perl/perl-tutorial.html", "https://www.runoob.com/postgresql/postgresql-tutorial.html", "https://www.runoob.com/css/css-tutorial.html", "https://www.runoob.com/aspnet/mvc-intro.html", "https://www.runoob.com/aspnet/aspnet-intro.html", "https://www.runoob.com/git/git-tutorial.html", "https://www.runoob.com/svn/svn-tutorial.html", "https://www.runoob.com/julia/julia-tutorial.html", "https://www.runoob.com/manual/Flat-UI/", "https://www.runoob.com/googleapi/google-maps-basic.html", "http://www.runoob.com/pytorch/pytorch-image-classification.html", "https://www.runoob.com/disclaimer", "https://www.runoob.com/fastapi/fastapi-tutorial.html", "https://www.runoob.com/browser-history", "https://www.runoob.com/charsets/html-charsets.html", "https://www.runoob.com/manual/zeptojs.html", "https://www.runoob.com/quiz/html5-quiz.html", "https://www.runoob.com/quiz/jquery-quiz.html", "https://www.runoob.com/django/django-tutorial.html", "https://www.runoob.com/tags/html-colorpicker.html", "https://www.runoob.com/scala/scala-tutorial.html", "https://www.runoob.com/sql/sql-tutorial.html", "http://www.runoob.com/pytorch/pytorch-text-classification.html", "javascript:void(0)", "https://www.runoob.com/cmake/cmake-tutorial.html", "https://www.runoob.com/css3/css3-tutorial.html", "https://www.runoob.com/regexp/regexp-tutorial.html", "https://www.runoob.com/html/html-tutorial.html", "https://c.runoob.com/front-end/6939/", "https://www.runoob.com/commentslist", "https://www.runoob.com/nextjs/nextjs-tutorial.html", "https://www.runoob.com/zig/zig-tutorial.html", "https://www.runoob.com/dash/dash-tutorial.html", "https://www.runoob.com/hosting/hosting-tutorial.html", "https://www.runoob.com/ajx/ajax-examples.html", "https://www.runoob.com/java/java-examples.html", "https://www.runoob.com/eclipse/eclipse-tutorial.html", "https://www.runoob.com/w3cnote/verilog-tutorial.html", "https://www.runoob.com/web/web-buildingprimer.html", "javascript:void(0);", "https://www.runoob.com/asp/asp-tutorial.html", "https://www.runoob.com/vbscript/vbscript-tutorial.html", "https://www.runoob.com/r/r-tutorial.html", "https://www.runoob.com/quiz/html-quiz.html", "https://www.runoob.com/servlet/servlet-tutorial.html", "https://www.runoob.com/pytorch/pytorch-tutorial.html", "https://www.runoob.com/swift/swift-tutorial.html", "https://www.runoob.com/flask/flask-tutorial.html", "https://www.runoob.com/ollama/ollama-tutorial.html", "https://www.runoob.com/highcharts/highcharts-tutorial.html", "https://www.runoob.com/qt/qt-tutorial.html", "https://beian.miit.gov.cn/", "https://www.runoob.com/xml/xml-tutorial.html", "https://www.runoob.com/dom/dom-tutorial.html", "https://www.runoob.com/", "https://www.runoob.com/numpy/numpy-tutorial.html", "https://www.runoob.com/js/js-tutorial.html", "https://www.runoob.com/xquery/xquery-tutorial.html", "https://www.runoob.com/htmldom/htmldom-tutorial.html", "https://www.runoob.com/restfulapi/restful-api-tutorial.html", "https://www.runoob.com/rss/rss-tutorial.html", "http://www.runoob.com/tensorflow/tensorflow-ecosystem.html", "https://www.runoob.com/mysql/mysql-tutorial.html", "https://www.runoob.com/w3cnote/android-tutorial-intro.html", "https://www.runoob.com/soap/soap-tutorial.html", "https://www.runoob.com/svg/svg-tutorial.html", "https://www.runoob.com/bootstrap4/bootstrap4-tutorial.html", "https://www.runoob.com/jquery/jquery-tutorial.html", "https://www.runoob.com/python3/python3-tutorial.html", "https://www.runoob.com/quiz/css-quiz.html", "https://www.runoob.com/pycharm/pycharm-tutorial.html", "https://www.runoob.com/jsref/jsref-tutorial.html", "https://www.runoob.com/kotlin/kotlin-tutorial.html", "https://www.runoob.com/ajax/ajax-tutorial.html", "https://www.runoob.com/linux/linux-tutorial.html", "https://www.runoob.com/matplotlib/matplotlib-tutorial.html", "https://www.runoob.com/aspnet/razor-intro.html", "https://www.runoob.com/echarts/echarts-tutorial.html", "https://www.runoob.com/selenium/selenium-tutorial.html", "https://www.runoob.com/ruby/ruby-tutorial.html", "https://www.runoob.com/xsl/xsl-tutorial.html", "https://www.runoob.com/browsers/browser-information.html", "https://www.runoob.com/csharp/csharp-tutorial.html", "https://www.runoob.com/w3c/w3c-tutorial.html", "https://www.runoob.com/w3cnote/zookeeper-tutorial.html", "https://www.runoob.com/bootstrap5/bootstrap5-tutorial.html", "https://www.jyshare.com/", "https://www.runoob.com/tcpip/tcpip-tutorial.html", "https://www.runoob.com/html/html-examples.html", "https://www.runoob.com/ml/ml-tutorial.html", "http://www.runoob.com/pytorch/pytorch-model-deployment.html", "https://www.runoob.com/cssref/css-reference.html", "https://www.runoob.com/python/python-tutorial.html", "https://www.runoob.com/quiz/asp-quiz.html", "https://www.runoob.com/go/go-tutorial.html", "https://www.runoob.com/css/css-examples.html", "https://www.runoob.com/design-pattern/design-pattern-tutorial.html", "http://www.runoob.com/pytorch/pytorch-torchvision.html", "https://www.runoob.com/redis/redis-tutorial.html", "https://www.runoob.com/foundation/foundation-tutorial.html", "https://www.runoob.com/manual/PostgreSQL/", "https://www.runoob.com/data-structures/data-structures-tutorial.html", "https://www.runoob.com/maven/maven-tutorial.html", "https://www.runoob.com/tensorflow/tensorflow-tutorial.html", "https://www.runoob.com/tailwindcss/tailwindcss-tutorial.html", "https://www.runoob.com/sklearn/sklearn-tutorial.html", "https://c.runoob.com/front-end/53", "https://www.runoob.com/xslfo/xslfo-tutorial.html", "https://www.runoob.com/archives", "https://www.runoob.com/xpath/xpath-tutorial.html", "https://www.runoob.com/c/c-tutorial.html", "https://www.runoob.com/jquery/jquery-examples.html", "https://c.runoob.com/front-end/6232/", "https://www.runoob.com/vscode/vscode-tutorial.html", "https://www.runoob.com/dtd/dtd-tutorial.html", "https://www.runoob.com/rust/rust-tutorial.html", "https://www.runoob.com/angularjs/angularjs-tutorial.html", "https://www.runoob.com/aspnet/aspnet-tutorial.html", "https://www.runoob.com/swagger/swagger-tutorial.html", "https://c.runoob.com/front-end/6680/", "https://www.runoob.com/typescript/ts-tutorial.html", "https://www.runoob.com/schema/schema-tutorial.html", "https://www.runoob.com/nodejs/nodejs-tutorial.html", "https://www.runoob.com/xml/xml-examples.html", "https://www.runoob.com/react/react-tutorial.html", "https://www.runoob.com/mongodb/mongodb-tutorial.html", "https://www.runoob.com/vue3/vue3-tutorial.html", "https://www.runoob.com/font-awesome/fontawesome-tutorial.html", "https://www.runoob.com/pandas/pandas-tutorial.html", "https://www.runoob.com/js/js-examples.html", "https://www.runoob.com/quiz/python-quiz.html", "https://www.runoob.com/quiz/php-quiz.html", "https://www.runoob.com/cplusplus/cpp-tutorial.html", "https://www.runoob.com/markdown/md-tutorial.html", "https://www.runoob.com/np/np-tutorial.html", "https://www.runoob.com/scipy/scipy-tutorial.html", "https://www.runoob.com/json/json-tutorial.html", "https://www.runoob.com/java/java-tutorial.html", "https://www.runoob.com/http/http-tutorial.html", "https://www.runoob.com/tags/html-reference.html", "https://www.runoob.com/sqlite/sqlite-tutorial.html", "https://www.runoob.com/ionic/ionic-tutorial.html", "https://www.runoob.com/wsdl/wsdl-tutorial.html", "https://www.runoob.com/docker/docker-tutorial.html", "https://www.runoob.com/Memcached/Memcached-tutorial.html", "https://www.runoob.com/lua/lua-tutorial.html", "https://www.runoob.com/quiz/xhtml-quiz.html", "https://www.runoob.com/angularjs2/angularjs2-tutorial.html", "https://www.runoob.com/jqueryui/jqueryui-tutorial.html", "https://www.runoob.com/rdf/rdf-tutorial.html", "https://www.runoob.com/aboutus", "http://www.runoob.com/pytorch/pytorch-model-save.html", "https://www.runoob.com/w3cnote/", "https://www.runoob.com/appml/appml-tutorial.html", "https://www.runoob.com/xlink/xlink-tutorial.html", "https://www.runoob.com/aspnet/webpages-intro.html", "https://www.runoob.com/html/html5-intro.html", "https://www.runoob.com/php/php-tutorial.html", "https://www.runoob.com/webservices/webservices-tutorial.html", "https://www.runoob.com/chartjs/chartjs-tutorial.html", "http://www.runoob.com/pytorch/pytorch-torch-optim.html", "https://www.runoob.com/opencv/opencv-tutorial.html", "https://www.runoob.com/jquerymobile/jquerymobile-tutorial.html", "https://www.runoob.com/pillow/pillow-tutorial.html"]
Thought:Thought: From the list of hyperlinks, I will filter out the ones that are related to the database category based on the keywords in their URLs and descriptions.Action:
```
{"action": "Final Answer","action_input": "Based on the extracted hyperlinks, the tutorials under the '数据库' (Database) category on Runoob include:\n\n- SQL: https://www.runoob.com/sql/sql-tutorial.html\n- MySQL: https://www.runoob.com/mysql/mysql-tutorial.html\n- PostgreSQL: https://www.runoob.com/postgresql/postgresql-tutorial.html\n- SQLite: https://www.runoob.com/sqlite/sqlite-tutorial.html\n- MongoDB: https://www.runoob.com/mongodb/mongodb-tutorial.html\n- Redis: https://www.runoob.com/redis/redis-tutorial.html\n- Memcached: https://www.runoob.com/memcached/memcached-tutorial.html"
}
```> Finished chain.
Based on the extracted hyperlinks, the tutorials under the '数据库' (Database) category on Runoob include:- SQL: https://www.runoob.com/sql/sql-tutorial.html
- MySQL: https://www.runoob.com/mysql/mysql-tutorial.html
- PostgreSQL: https://www.runoob.com/postgresql/postgresql-tutorial.html
- SQLite: https://www.runoob.com/sqlite/sqlite-tutorial.html
- MongoDB: https://www.runoob.com/mongodb/mongodb-tutorial.html
- Redis: https://www.runoob.com/redis/redis-tutorial.html
- Memcached: https://www.runoob.com/memcached/memcached-tutorial.htmlProcess finished with exit code 0

http://www.lryc.cn/news/574462.html

相关文章:

  • gRPC 静态库链接到 DLL 的风险与潜在问题
  • 鸿蒙开发深入解析:Service Ability(后台任务)全面指南
  • 深度解析|智能汽车操作系统技术突破:从架构演进到产业重构
  • 比翼双飞,影像的迁徙之旅
  • 基于目标驱动的分布式敏捷开发
  • GPPT(Graph Pre-training and Prompt Tuning)项目复现
  • 生成FUCK代币,并用程序进行转账的过程
  • C++字符串的行输入
  • 查询sqlserver数据库中,数据占的空间和索引占的空间
  • 鸿蒙HarmonyOS 5 开发实践:LazyForEach在通讯录应用中的高效渲染(附:代码)
  • 前端vue2每三十秒被动接受后端服务器发送过来得数据
  • 前端react使用 UmiJS 构建框架 在每次打包时候记录打包时间并在指定页面显示
  • Linux 启动过程流程图
  • PDF全能转换工具,支持图片转PDF,多图合并转PDF,word转PDF,PDF转WORD,PDF转图片
  • TouchDIVER Pro触觉手套:虚拟现实中的多模态交互新选择
  • Flask(五) 表单处理 request.form
  • 鸿蒙开发深入解析:Data Ability 数据共享机制全面指南
  • Java并发编程中高效缓存设计的哲学
  • 【格与代数系统】示例2
  • PyTorch 实现的 GlobalPMFSBlock_AP_Separate:嵌套注意力机制在多尺度特征聚合中的应用
  • 关于 pdd:anti_content参数分析与逆向
  • C#图书管理系统笔记(残缺版)
  • 【数据标注师】词性标注2
  • 【AI News | 20250623】每日AI进展
  • 基于 SpringBoot+JSP 的医疗预约与诊断系统设计与实现
  • 华为OD机试_2025 B卷_矩形相交的面积(Python,100分)(附详细解题思路)
  • leetcode82.删除排序链表中的重复元素II
  • EEG 分类攻略1- theta, alpha, beta和gamma频谱
  • C++语言发展历程-2025
  • python中学物理实验模拟:平抛运动和抛物运动