OpenClaw浏览器自动化:Qwen2.5-VL-7B实现网页图文信息抽取

张开发
2026/4/8 13:49:44 15 分钟阅读

分享文章

OpenClaw浏览器自动化:Qwen2.5-VL-7B实现网页图文信息抽取
OpenClaw浏览器自动化Qwen2.5-VL-7B实现网页图文信息抽取1. 为什么需要浏览器自动化上周我需要对比三款机械键盘的价格和参数手动打开十几个标签页、来回切换、复制粘贴数据到表格的操作让我精疲力尽。这种重复性工作正是AI智能体最擅长的领域——而OpenClaw恰好提供了浏览器自动化的完整解决方案。与传统的爬虫工具不同OpenClaw的独特之处在于它能像真人一样操作浏览器滚动页面、点击元素、截图识别再结合Qwen2.5-VL-7B这样的多模态模型可以直接从网页截图中提取结构化信息。这种所见即所得的方式完美解决了动态渲染页面的数据采集难题。2. 环境准备与模型部署2.1 基础环境搭建我选择在MacBook ProM1芯片上通过Docker部署Qwen2.5-VL-7B模型这样可以避免污染本地Python环境。以下是关键步骤# 拉取星图平台提供的预置镜像 docker pull registry.cn-hangzhou.aliyuncs.com/csdn_mirrors/qwen2.5-vl-7b-gptq:v1.2 # 启动容器注意显存分配 docker run -d --name qwen-vl \ -p 5000:5000 \ --gpus all \ -e VLLM_GPU_MEMORY_UTILIZATION0.8 \ registry.cn-hangzhou.aliyuncs.com/csdn_mirrors/qwen2.5-vl-7b-gptq:v1.2模型服务启动后可以通过http://localhost:5000/v1访问兼容OpenAI的API端点。这里有个小技巧在OpenClaw配置中我将这个地址设为默认模型服务// ~/.openclaw/openclaw.json { models: { providers: { local-qwen: { baseUrl: http://localhost:5000/v1, api: openai-completions, models: [{ id: qwen2.5-vl-7b, name: Local Qwen-VL }] } } } }2.2 OpenClaw浏览器技能配置OpenClaw本身不内置浏览器控制能力需要安装browser-agent技能包clawhub install browser-agent安装完成后在Web控制台的技能管理页面启用Browser Automation模块。这里我遇到了第一个坑MacOS需要单独授权OpenClaw的辅助功能权限。解决方法是系统设置 隐私与安全性 辅助功能添加/usr/local/bin/openclaw到允许列表重启OpenClaw网关服务3. 电商比价自动化实战3.1 任务规划与拆解我需要实现的功能链路是打开京东/淘宝搜索页面输入商品关键词如机械键盘 红轴滚动浏览结果页并截图识别截图中的商品卡片区域提取名称、价格、评价数等关键字段生成结构化JSON数据通过OpenClaw的对话界面直接用自然语言描述这个需求请帮我对比京东上三款红轴机械键盘的价格和参数要求 1. 按销量排序前3个商品 2. 提取商品名称、价格、评价数、店铺名称 3. 结果保存为JSON格式3.2 关键实现细节OpenClaw执行这个任务时背后实际发生了这些操作页面导航调用Playwright打开https://www.jd.com元素定位通过XPath找到搜索框并输入关键词交互模拟点击搜索按钮后等待页面加载完成视觉处理对商品列表区域截图调用Qwen2.5-VL-7B进行OCR和语义理解模型返回的JSON包含识别出的文本和位置信息# 模拟OpenClaw生成的执行脚本简化版 from browser_agent import BrowserSession def extract_product_info(): with BrowserSession() as browser: browser.goto(https://www.jd.com) search_box browser.find(//*[idkey]) search_box.type(机械键盘 红轴) browser.click(//*[idsearch]/div/div[2]/button) # 等待结果加载 browser.wait_for_selector(//*[idJ_goodsList]) # 获取前3个商品截图 products [] for i in range(1, 4): item browser.find(f//*[idJ_goodsList]/ul/li[{i}]) screenshot item.screenshot() # 调用Qwen-VL模型解析图片 response qwen_vl_analyze( imagescreenshot, prompt提取商品名称、价格、评价数和店铺名称输出JSON ) products.append(response) return products3.3 多模态模型调优心得Qwen2.5-VL-7B对中文电商页面的识别效果出乎意料的好但需要特别注意以下几点提示词工程明确指定需要提取的字段和格式例如请从商品截图中提取以下信息以JSON格式返回 - name: 商品名称去除促销标签等无关文本 - price: 当前售价仅数字部分 - reviews: 评价数量转换为整数 - shop: 店铺名称去除旗舰店等后缀截图质量确保截图包含完整的商品卡片滚动页面时适当等待避免出现加载中的半截图片对高分辨率屏幕建议先缩放浏览器到100%结果校验设置价格、评价数等数字字段的格式校验规则对识别失败的项自动重试2-3次4. 进阶应用与避坑指南4.1 处理动态加载内容现代电商网站大量使用懒加载技术直接截图可能只能获取首屏内容。我的解决方案是通过OpenClaw控制浏览器滚动到页面底部每次滚动后等待1秒可通过browser.scroll_down()实现重复直到不再有新内容加载// OpenClaw实际执行的滚动脚本 let prevHeight 0; do { prevHeight document.body.scrollHeight; window.scrollTo(0, prevHeight); await new Promise(resolve setTimeout(resolve, 1000)); } while (document.body.scrollHeight prevHeight);4.2 登录态保持技巧对于需要登录的网站如淘宝可以复用浏览器会话首次手动登录后导出Cookiesopenclaw browser export-cookies --output ~/cookies.json后续任务开始时注入Cookiesopenclaw browser load-cookies --input ~/cookies.json4.3 性能优化方案长时间运行后我发现两个性能瓶颈显存泄漏连续处理大量截图会导致VRAM占用持续增长解决方案每处理10个请求后重启模型服务容器Token消耗每个截图分析需要约800-1200 tokens优化方法先通过传统CV方法裁剪出商品卡片区域再送模型识别5. 成果展示与扩展思考经过一周的调优我的自动化比价系统已经能稳定运行。以下是某次运行的输出示例[ { name: 罗技G512 CARBON机械键盘, price: 499.00, reviews: 250000, shop: 罗技官方旗舰店 }, { name: 雷蛇黑寡妇蜘蛛V3, price: 629.00, reviews: 180000, shop: 雷蛇自营店 } ]这个方案最令我惊喜的是它的扩展性——只需修改提示词同样的技术栈就能应用于其他场景学术研究自动抓取论文数据并生成文献综述竞品监控定期截图竞品官网提取最新产品特性内容审核识别网页中的违规图片和文本当然也要注意法律边界避免违反网站的robots.txt规定。我的原则是控制请求频率在人类操作范围内且仅用于个人数据分析。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章