news 2026/6/8 3:24:07

多平台电商通用采集技术:一套代码打通1688/淘宝/天猫/拼多多/京东

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多平台电商通用采集技术:一套代码打通1688/淘宝/天猫/拼多多/京东

引言

很多开发者在问:“支持1688商品下载的软件”“有没有软件可以同时抓取淘宝天猫拼多多抖音电商的无水印图和视频?”

做跨平台电商的朋友需要从多个平台采集素材。传统爬虫需要为每个平台单独写解析规则,维护成本极高。

本文将解析浏览器方案如何一套代码适配所有平台,实现图片视频通用采集。

一、多平台采集技术架构

text

┌─────────────────────────────────────────────────────────────────────────────┐ │ 多平台通用采集技术架构 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ 统一接口层 │ │ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ │ │ UniversalCollector │ │ │ │ │ │ collect(url) → { images, videos, title } │ │ │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ 浏览器内核层 │ │ │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ │ │ Chromium + CEF │ │ │ │ │ │ 统一渲染所有平台,无需区分解析规则 │ │ │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────┐ │ │ │ 通用处理层 │ │ │ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │ │ │ │ 原图转换 │ │ SKU识别 │ │ 视频嗅探 │ │ 自动分类 │ │ │ │ │ │ 通用函数 │ │ 通用算法 │ │ 通用函数 │ │ 通用算法 │ │ │ │ │ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────┘

二、通用图片提取器

javascript

// universal_image_extractor.js (function() { 'use strict'; class UniversalImageExtractor { // 通用原图URL转换 getOriginalUrl(url) { if (!url) return null; if (url.startsWith('data:')) return null; if (url.includes('1x1') || url.includes('blank')) return null; // 淘宝/天猫:去除尺寸后缀 url = url.replace(/_\d+x\d+\./g, '.'); url = url.replace(/\.sum\./g, '.'); // 京东:去除缩略图参数 url = url.replace(/!q\d+\.jpg$/, '.jpg'); url = url.replace(/\.n\.jpg/, '.jpg'); // 拼多多:webp转jpg url = url.replace(/\.webp$/, '.jpg'); // 去除所有URL参数 url = url.split('?')[0]; return url; } // 提取所有图片 extractAll() { const images = { main: [], sku: [], detail: [] }; // 基于尺寸和位置的智能分类 const allImgs = document.querySelectorAll('img'); const imgData = []; allImgs.forEach(img => { let url = img.src || img.getAttribute('data-src') || img.getAttribute('data-original'); if (!url) return; url = this.getOriginalUrl(url); if (!url) return; const width = img.naturalWidth || img.width || 0; const parentClass = img.parentElement?.className || ''; imgData.push({ url, width, parentClass, img }); }); // 去重 const seen = new Set(); const uniqueImages = imgData.filter(img => { if (seen.has(img.url)) return false; seen.add(img.url); return true; }); // 分类:宽图为主图,小图为SKU图,其余为详情图 uniqueImages.forEach(img => { if (img.width >= 400) { images.main.push(img.url); } else if (img.width <= 150 || img.parentClass.includes('sku')) { images.sku.push(img.url); } else { images.detail.push(img.url); } }); return images; } } const extractor = new UniversalImageExtractor(); return extractor.extractAll(); })();

三、通用视频提取器

javascript

// universal_video_extractor.js (function() { 'use strict'; class UniversalVideoExtractor { extract() { // 方法1:video标签 const video = document.querySelector('video'); if (video && video.src) { return { url: video.src, type: this._detectType(video.src) }; } // 方法2:source标签 const source = document.querySelector('video source'); if (source && source.src) { return { url: source.src, type: this._detectType(source.src) }; } // 方法3:页面数据(淘宝/京东/拼多多通用) const patterns = [ /videoUrl["']?\s*[=:]\s*["']([^"']+\.(?:mp4|m3u8))["']/i, /video_url["']?\s*[=:]\s*["']([^"']+\.(?:mp4|m3u8))["']/i, /"url"\s*:\s*"([^"]+\.(?:mp4|m3u8))"/i ]; const html = document.documentElement.innerHTML; for (const pattern of patterns) { const match = html.match(pattern); if (match) { return { url: match[1], type: this._detectType(match[1]) }; } } return null; } _detectType(url) { if (url.endsWith('.mp4')) return 'mp4'; if (url.endsWith('.m3u8')) return 'm3u8'; return 'unknown'; } } const extractor = new UniversalVideoExtractor(); return extractor.extract(); })();

四、平台登录态管理

cpp

class MultiPlatformAuth { public: void Login(const std::string& platform) { if (platform == "taobao") { browser_->GetMainFrame()->LoadURL("https://login.taobao.com"); } else if (platform == "jd") { browser_->GetMainFrame()->LoadURL("https://passport.jd.com"); } else if (platform == "pdd") { browser_->GetMainFrame()->LoadURL("https://mms.pinduoduo.com"); } else if (platform == "1688") { browser_->GetMainFrame()->LoadURL("https://login.1688.com"); } // 用户手动登录,Cookie自动保存 // 后续所有平台请求自动携带对应Cookie } void LoadProduct(const std::string& url) { // 自动携带已保存的Cookie browser_->GetMainFrame()->LoadURL(url); } };

五、多平台支持列表

平台图片视频SKU图备注
淘宝原图
天猫原图
京东原图
拼多多webp转jpg
1688⚠️需登录
抖音⚠️商品视频
亚马逊原图

六、图片质量说明

重要:一键存图下载的是电商平台的原图、原尺寸、原格式,无任何压缩、无水印、无MD5篡改。

七、总结

跨平台通用采集的核心是浏览器方案:一套代码适配所有平台,智能分类基于尺寸和位置,原图转换通用算法。

结论:如果你需要一款稳定、自动分类、支持全平台的电商图片下载工具,一键存图是目前最省心的选择。

百度搜索“一键存图”或“火蚁一键存图”即可找到。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 3:22:12

苍穹外卖5月31日

今日主要实现了微信小程序用户端的一些功能&#xff0c;包括缓存菜品&#xff0c;缓存套餐&#xff0c;新增购物车&#xff0c;查看购物车&#xff0c;清空购物车。新技术&#xff0c;缓存套餐使用了新的注解。一.缓存菜品&#xff08;使用redistemplate对象&#xff09;步骤&a…

作者头像 李华
网站建设 2026/6/8 3:12:30

操作系统知识点

第一章总问题&#xff1a;&#xff08;1&#xff09;操作系统的定义、设计目标、性质、作用*&#xff08;2&#xff09;操作系统的发展过程&#xff08;3&#xff09;单道批处理系统和多道批处理系统的原理、优缺点&#xff08;4&#xff09;分时、批处理、实时系统的特征总解答…

作者头像 李华
网站建设 2026/6/8 3:05:23

数电课设救星:手把手教你用CD4511驱动数码管,搞定电子时钟的显示部分

数电课设实战指南&#xff1a;CD4511驱动数码管的原理与故障排查全解析当你在数字电路课程设计中遇到电子时钟项目时&#xff0c;最令人头疼的往往不是时钟信号的生成或计数逻辑的实现&#xff0c;而是如何让那些闪烁不定的数码管稳定、准确地显示时间。本文将带你深入理解CD45…

作者头像 李华