OpenClaw浏览器自动化:Phi-3-vision-128k-instruct网页图文信息抓取实战

张开发
2026/5/4 17:28:37 15 分钟阅读
OpenClaw浏览器自动化:Phi-3-vision-128k-instruct网页图文信息抓取实战
OpenClaw浏览器自动化Phi-3-vision-128k-instruct网页图文信息抓取实战1. 为什么需要浏览器自动化最近在做一个电商价格监控的小工具时我遇到了一个典型问题目标网站没有开放API接口但需要定期抓取商品价格和详情页的图文信息。传统爬虫方案对动态渲染的页面支持有限特别是当关键信息以图片形式存在时比如促销活动的倒计时图、商品详情里的规格参数图常规文本抓取完全失效。这时候我想到了OpenClaw的浏览器控制能力——它可以直接操作浏览器像真人一样点击、滚动、截图。配合Phi-3-vision-128k-instruct这个支持多模态输入的模型就能实现看到什么理解什么的自动化流程。经过两周的实践验证这套方案成功将原本需要人工参与的监控工作变成了全自动流程。2. 技术方案设计思路2.1 核心组件分工整个系统由三个关键部分组成OpenClaw执行层负责浏览器操控和基础环境交互Phi-3-vision模型层处理截图中的图文信息理解结构化输出模块将模型返回的自然语言结果转换为标准JSON特别值得注意的是Phi-3-vision-128k-instruct的128k上下文窗口对长页面分析特别有用。在实际测试中我可以一次性传入完整页面截图和滚动后的连续截图模型能保持对页面整体结构的连贯理解。2.2 典型工作流程以抓取电商商品页为例OpenClaw打开浏览器访问目标URL执行页面滚动确保关键区域加载完成截取可视区域和完整页面截图将截图base64编码后连同文本指令发送给Phi-3模型返回包含价格、库存、促销等信息的自然语言描述后处理模块提取关键字段生成结构化数据3. 具体实现步骤3.1 环境准备首先确保已经部署好OpenClaw和Phi-3-vision-128k-instruct模型。我的环境配置如下# OpenClaw安装Mac环境示例 curl -fsSL https://openclaw.ai/install.sh | bash openclaw onboard --provider custom --baseUrl http://localhost:8000/v1Phi-3-vision模型使用vLLM部署在本地的8000端口通过Chainlit提供Web界面方便调试。这里需要注意模型服务需要支持OpenAI兼容的视觉API格式。3.2 浏览器控制技能配置OpenClaw本身不包含浏览器自动化能力需要安装对应的skillclawhub install browser-automation然后在~/.openclaw/openclaw.json中配置浏览器路径{ skills: { browser-automation: { chromePath: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome } } }3.3 图文信息提取实现核心代码逻辑是通过OpenClaw的JavaScript执行环境调用浏览器自动化skill。以下是关键代码片段async function scrapeProductPage(url) { // 启动浏览器 const browser await openclaw.skills.browser.launch(); const page await browser.newPage(); // 访问目标页面 await page.goto(url, { waitUntil: networkidle2 }); // 获取完整页面截图 const fullPageShot await page.screenshot({ fullPage: true }); // 调用视觉模型分析 const visionPrompt 你是一名电商数据分析专家。请分析这张商品页面截图 1. 提取商品标题、当前价格、原价如有折扣 2. 识别所有促销信息如满减、赠品等 3. 从商品详情区域提取关键参数 请用JSON格式返回结果 ; const analysisResult await openclaw.models.chat({ model: phi-3-vision, messages: [ { role: user, content: [ { type: text, text: visionPrompt }, { type: image, image: fullPageShot.toString(base64) } ] } ] }); // 转换为结构化数据 return parseModelOutput(analysisResult); }4. 实践中的挑战与解决方案4.1 动态内容加载问题最初实现时发现有些商品的价格需要鼠标悬停才会显示。解决方案是在截图前注入JavaScript代码模拟用户交互await page.evaluate(() { document.querySelector(.price-tooltip).dispatchEvent( new MouseEvent(mouseover, { bubbles: true }) ); }); // 等待价格动画完成 await page.waitForTimeout(500);4.2 多模态提示词优化Phi-3-vision对提示词格式比较敏感。经过多次测试发现以下结构效果最好先明确模型角色你是一名电商数据分析专家具体说明需要提取的信息类别指定输出格式要求对模糊概念给出明确界定比如促销信息包括...4.3 Token消耗控制完整页面截图base64编码后会占用大量Token。通过两种方式优化只截取关键区域如商品主图区域、价格区域使用page.evaluate()先获取页面文本内容只对纯图片区域使用视觉分析// 混合文本和视觉分析 const textContent await page.evaluate(() { return document.querySelector(.product-detail).innerText; }); const imageShots await page.screenshot({ clip: { x: 0, y: 0, width: 800, height: 400 } });5. 实际效果与使用建议经过两周的持续运行这套方案在测试的3个电商平台上实现了商品价格抓取准确率98.7%对比人工检查平均每个页面处理时间12秒包含网络加载每天可自动监控200商品页面对于想要尝试类似方案的朋友我的建议是先从单个页面类型开始验证再扩展场景为不同网站编写特定的元素定位逻辑建立截图缓存机制方便调试模型输出对关键字段设置校验规则如价格必须是数字这种浏览器自动化多模态理解的组合特别适合没有开放API的网站数据采集。虽然初期配置需要一些耐心但一旦跑通就能极大提升数据获取效率。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章