采集亚马逊商品的主图时,采集出来的图片链接打开永远都是500*500的尺寸,不是原图尺寸,请问要怎么调整才能采集到原图尺寸
// 获取图片URL
function getProductImages() {
let orderedImages = []; // 用于保持图片顺序
const seenUrls = new Set(); // 用于去重
// 获取轮播图容器
const altImages = document.getElementById('altImages');
if (altImages) {
// 获取所有图片项目
const thumbnailItems = altImages.querySelectorAll('li.item, li.imageThumbnail');
console.log(`找到轮播图项目数量: ${thumbnailItems.length}`);
// 处理每个图片项目
Array.from(thumbnailItems).forEach((item, index) => {
if (index >= 5) return; // 只处理前5张图片
if (item.querySelector('.videoThumbnail')) return; // 跳过视频缩略图
let imageUrl = null;
// 1. 尝试从图片查看器链接获取大图URL
const popoverTrigger = item.querySelector('[data-image-large-src]');
if (popoverTrigger) {
imageUrl = popoverTrigger.getAttribute('data-image-large-src');
console.log(`从查看器获取第${index + 1}张图片:`, imageUrl);
}
// 2. 如果没有找到,尝试从data-a-dynamic-image获取
if (!imageUrl) {
const img = item.querySelector('img[data-a-dynamic-image]');
if (img) {
try {
const dynamicData = JSON.parse(img.getAttribute('data-a-dynamic-image'));
// 获取最大尺寸的图片
const urls = Object.keys(dynamicData);
if (urls.length > 0) {
imageUrl = urls[0];
console.log(`从dynamic-image获取第${index + 1}张图片:`, imageUrl);
}
} catch (e) {
console.error('解析dynamic-image失败:', e);
}
}
}
// 3. 如果还是没有,尝试从data-old-hires获取
if (!imageUrl) {
const img = item.querySelector('img[data-old-hires]');
if (img) {
imageUrl = img.getAttribute('data-old-hires');
console.log(`从old-hires获取第${index + 1}张图片:`, imageUrl);
}
}
// 4. 最后尝试从普通img标签获取
if (!imageUrl) {
const img = item.querySelector('img');
if (img) {
imageUrl = img.src;
console.log(`从img.src获取第${index + 1}张图片:`, imageUrl);
}
}
// 验证和添加URL
if (imageUrl && typeof imageUrl === 'string') {
// 移除查询参数
imageUrl = imageUrl.split('?')[0];
if (!imageUrl.includes('sprite') &&
!imageUrl.includes('play-icon') &&
!imageUrl.includes('video-slate') &&
imageUrl.includes('images/I')) {
// 使用原始URL作为唯一标识
if (!seenUrls.has(imageUrl)) {
seenUrls.add(imageUrl);
orderedImages.push(imageUrl);
console.log(`成功添加第 ${orderedImages.length} 张图片:`, imageUrl);
}
}
}
});
}
// 如果没有找到图片,使用主图
if (orderedImages.length === 0) {
const mainImage = document.getElementById('landingImage');
if (mainImage) {
let mainImageUrl = mainImage.getAttribute('data-old-hires');
if (!mainImageUrl) {
mainImageUrl = mainImage.src;
}
if (mainImageUrl) {
orderedImages.push(mainImageUrl.split('?')[0]);
}
}
}
console.log('找到不重复图片数量:', orderedImages.length);
// 如果图片不足5张,复制第一张图片
while (orderedImages.length < 5) {
orderedImages.push(orderedImages[0] || '');
}
// 确保只返回5张图片
return orderedImages.slice(0, 5);
}