视觉分析开发范例:Puppeteer截图+计算机视觉动态定位

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
简介: 本文介绍了在现代互联网中,传统DOM爬虫难以应对动态加载和视觉驱动内容的问题,并提出了“视觉爬虫”的解决方案。通过Puppeteer实现浏览器自动化,结合计算机视觉技术完成页面元素的动态定位与信息提取。文章对比了DOM爬虫与视觉爬虫的技术特点,展示了基于Node.js的核心代码示例,用于小红书平台的视频搜索、播放及截图处理。最后指出,视觉爬虫能够突破传统限制,在强JS渲染和动态内容场景中更具优势,为数据采集提供了新方向。

爬虫代理

一、选型背景:传统爬虫已无力应对的视觉挑战

在现代互联网环境中,尤其是小红书、抖音、B站等视觉驱动型平台,传统基于 HTML 的爬虫已经难以满足精准数据采集需求:

  • 内容加载由 JS 动态触发,难以直接解析 HTML;
  • 视频、图片等关键元素无法通过 DOM 提取;
  • 页面元素位置随屏幕尺寸、渲染行为而变化。

为此,「视觉爬虫」应运而生。通过浏览器自动化 + 截图 + 图像识别,可以突破传统爬虫的局限,抓取“人眼所见”的页面内容。

本文聚焦在 Puppeteer 驱动浏览器自动化,并结合计算机视觉实现页面元素的动态定位与信息提取。


二、技术对比维度:DOM vs. 视觉爬虫

对比维度 传统 DOM 爬虫 视觉爬虫(Puppeteer + CV)
页面解析方式 HTML 文档结构 可视化渲染页面截图
定位元素依据 CSS/XPath/Selector 图像特征(坐标、形状、文字)
动态内容支持 差,依赖额外执行 JS 强,浏览器真实执行环境
稳定性 页面结构变动易失效 图像特征变化小,较稳
技术难度 中高,涉及计算机视觉处理

三、代码对比示例:关键词搜索+视频截图+视觉定位

下面通过 Puppeteer + Node.js 实现小红书视频搜索 + 播放 + 屏幕截图 + 图像识别定位关键区域,并设置代理等提供采集成功率。

💡 目标任务:搜索关键词“旅行vlog”,点击第一个视频并截图视频播放页,对播放按钮等进行视觉定位。

项目依赖

npm install puppeteer-extra puppeteer-extra-plugin-stealth tesseract.js sharp

核心代码示例

const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const tesseract = require('tesseract.js'); // 用于图像识别
const sharp = require('sharp');            // 图像裁剪处理

puppeteer.use(StealthPlugin());

(async () => {
   
  // 爬虫代理配置(亿牛云示例 www.16yun.cn)
  const proxyHost = 'proxy.16yun.cn';
  const proxyPort = '31000';
  const proxyUser = '16YUN';
  const proxyPass = '16IP';

  // Puppeteer 启动带代理
  const browser = await puppeteer.launch({
   
    headless: false,
    args: [
      `--proxy-server=http://${
     proxyHost}:${
     proxyPort}`,
    ],
  });

  const page = await browser.newPage();

  // 设置 User-Agent 和 Cookie(模拟真实用户)
  await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36');

  await page.setCookie({
   
    name: 'xhsTracker',
    value: 'your_cookie_value',
    domain: '.xiaohongshu.com'
  });

  // 设置代理认证
  await page.authenticate({
   
    username: proxyUser,
    password: proxyPass,
  });

  // 打开小红书搜索页面
  const keyword = '旅行vlog';
  await page.goto(`https://www.xiaohongshu.com/search_result?keyword=${
     encodeURIComponent(keyword)}`, {
   
    waitUntil: 'networkidle2'
  });

  await page.waitForTimeout(3000); // 等待页面加载

  // 点击第一个视频内容
  const videoSelector = 'div.video-feed-container div.feed-video-card:first-child';
  await page.waitForSelector(videoSelector);
  await page.click(videoSelector);

  // 等待视频播放页加载
  await page.waitForTimeout(5000);

  // 截图当前页面
  const screenshotPath = 'screenshot.png';
  await page.screenshot({
    path: screenshotPath, fullPage: true });
  console.log('页面截图已保存:', screenshotPath);

  // 对截图进行图像识别(找出“暂停/播放按钮”等图标)
  const croppedPath = 'video_button_crop.png';

  // 示例:裁剪中间区域(大概率是播放按钮)
  await sharp(screenshotPath)
    .extract({
    left: 500, top: 300, width: 300, height: 200 }) // 可按实际屏幕调整
    .toFile(croppedPath);

  console.log('已裁剪截图区域:', croppedPath);

  // 使用 Tesseract 识别该区域的文本(可替换为模板匹配找图标)
  const result = await tesseract.recognize(croppedPath, 'eng', {
   
    logger: m => console.log(m)
  });

  console.log('识别结果:', result.data.text);

  await browser.close();
})();

四、场景推荐

适用场景 推荐方式
采集结构化信息(如商品价格) 传统 DOM 爬虫足够
视频截图、播放状态分析 Puppeteer + CV 更适合
页面强 JS 渲染(如小红书) Puppeteer 更有优势
动态内容 + 图像定位 Puppeteer + 图像识别最强

五、结论:让“爬虫看见”比“爬虫看懂”更重要

随着视觉化内容成为主流,“看见”页面比“理解 HTML”更关键。Puppeteer 结合计算机视觉不仅可以真实再现页面内容,还能识别图像中的元素,为复杂场景提供强有力的支持。

尤其在小红书等平台,传统 DOM 爬虫几乎“寸步难行”,而视觉爬虫打开了新一代内容采集的大门。未来,结合 OCR、模板匹配、视频分析的视觉爬虫,将成为数据采集的新范式。

相关文章
|
机器学习/深度学习 算法 固态存储
【计算机视觉必读干货】图像分类、定位、检测,语义分割和实例分割方法梳理
本文作者来自南京大学计算机系机器学习与数据挖掘所(LAMDA),本文直观系统地梳理了深度学习在计算机视觉领域四大基本任务中的应用,包括图像分类、定位、检测、语义分割和实例分割。
9202 0
|
4月前
|
存储 人工智能 自然语言处理
关于计算机视觉中的自回归模型,这篇综述一网打尽了
这篇综述文章全面介绍了自回归模型在计算机视觉领域的应用和发展。文章首先概述了视觉中的序列表示和建模基础知识,随后根据表示策略将视觉自回归模型分为基于像素、标记和尺度的三类框架,并探讨其与生成模型的关系。文章详细阐述了自回归模型在图像、视频、3D及多模态生成等多方面的应用,列举了约250篇参考文献,并讨论了其在新兴领域的潜力和面临的挑战。此外,文章还建立了一个GitHub存储库以整理相关论文,促进了学术合作与知识传播。论文链接:https://arxiv.org/abs/2411.05902
111 1
|
10月前
|
人工智能 测试技术 API
AI计算机视觉笔记二十 九:yolov10竹签模型,自动数竹签
本文介绍了如何在AutoDL平台上搭建YOLOv10环境并进行竹签检测与计数。首先从官网下载YOLOv10源码并创建虚拟环境,安装依赖库。接着通过官方模型测试环境是否正常工作。然后下载自定义数据集并配置`mycoco128.yaml`文件,使用`yolo detect train`命令或Python代码进行训练。最后,通过命令行或API调用测试训练结果,并展示竹签计数功能。如需转载,请注明原文出处。
|
10月前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
12月前
|
自然语言处理 监控 自动驾驶
大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
【7月更文挑战第26天】大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
601 11
|
机器学习/深度学习 人工智能 自然语言处理
计算机视觉借助深度学习实现了革命性进步,从图像分类到复杂场景理解,深度学习模型如CNN、RNN重塑了领域边界。
【7月更文挑战第2天】计算机视觉借助深度学习实现了革命性进步,从图像分类到复杂场景理解,深度学习模型如CNN、RNN重塑了领域边界。AlexNet开启新时代,后续模型不断优化,推动对象检测、语义分割、图像生成等领域发展。尽管面临数据隐私、模型解释性等挑战,深度学习已广泛应用于安防、医疗、零售和农业,预示着更智能、高效的未来,同时也强调了技术创新、伦理考量的重要性。
172 1
|
编解码 机器人 测试技术
2024年6月计算机视觉论文推荐:扩散模型、视觉语言模型、视频生成等
6月还有一周就要结束了,我们今天来总结2024年6月上半月发表的最重要的论文,重点介绍了计算机视觉领域的最新研究和进展。
338 8
|
机器学习/深度学习 算法框架/工具 计算机视觉
ViT模型的出现标志着Transformer架构在计算机视觉中的成功应用
ViT模型的出现标志着Transformer架构在计算机视觉中的成功应用
153 2
|
人工智能 计算机视觉
李飞飞空间智能系列新进展,吴佳俊团队新BVS套件评估计算机视觉模型
【5月更文挑战第29天】李飞飞教授的SVL实验室与吴佳俊团队推出BEHAVIOR Vision Suite(BVS),一个创新工具包,用于生成定制合成数据以评估计算机视觉模型。BVS解决了现有数据生成器在资产、多样性和真实性方面的局限,提供灵活的场景、对象和相机参数调整。它包含8000多个对象模型和1000个场景,适用于多种视觉任务。实验展示了BVS在评估模型鲁棒性、场景理解和域适应中的效用,但也指出其在覆盖范围、使用难度和域适应上的局限。[论文链接](https://arxiv.org/pdf/2405.09546)
212 4
|
编解码 边缘计算 自然语言处理
2024年5月计算机视觉论文推荐:包括扩散模型、视觉语言模型、图像编辑和生成、视频处理和生成以及图像识别等各个主题
五月发布的计算机视觉领域重要论文涵盖了扩散模型、视觉语言模型、图像生成与编辑及目标检测。亮点包括:1) Dual3D提出双模式推理策略,实现高效文本到3D图像生成;2) CAT3D利用多视图扩散模型创建3D场景,仅需少量图像;3) Hunyuan-DiT是多分辨率的中文理解扩散Transformer,可用于多模态对话和图像生成;4) 通过潜在扩散模型从EEG数据重建自然主义音乐,展示复杂音频重建潜力。此外,还有关于视觉语言模型和图像编辑的创新工作,如BlobGEN用于合成具有控制性的图像。
424 3