You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python无需模拟点击抓取Mercado Livre商品各变体的图片URL

Mercado Livre 无模拟点击商品变体图片抓取方案

Mercado Livre 的全量商品数据(含所有变体属性、对应图片关联关系、图片资源地址)会在首次请求页面时直接预加载到 HTML 中,存储在全局变量window.__PRELOADED_STATE__里,你之前报错是因为误用了速卖通专属的window.runParams变量,并非数据没有预加载。

具体实现步骤如下:

  • 第一步:用requests发起普通 GET 请求获取页面原始 HTML,请求头补充正常浏览器 UA 即可避免基础反爬拦截,无需启动浏览器或模拟操作
  • 第二步:通过正则提取 HTML 中window.__PRELOADED_STATE__对应的 JSON 字符串,解析为 Python 字典
  • 第三步:定位核心数据节点:
    • 所有图片的基础信息存放在data['initialState']['components']['gallery']['pictures']数组中,每个条目包含图片ID、缩略图URL、格式等信息
    • 所有变体信息以及变体和图片的关联关系存放在data['initialState']['components']['variations']['data']数组中,每个变体条目下的pictures字段对应关联的图片ID,即使多张变体共享同一张图片也能精准匹配
  • 第四步:拿到缩略图URL后,按照你已知的规则,将URL末尾的-R.xxx替换为-F.xxx即可得到高清图链接

参考代码如下:

import requests
import re
import json

# 基础请求配置
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
product_url = "替换为你的Mercado Livre商品链接"

# 拉取页面原始内容
resp = requests.get(product_url, headers=headers)
resp.encoding = resp.apparent_encoding
html_content = resp.text

# 提取预加载JSON数据
json_match = re.search(r'window\.__PRELOADED_STATE__\s*=\s*(.*?)\s*;', html_content)
if not json_match:
    raise ValueError("未匹配到页面预加载数据")
raw_json = json_match.group(1)
preload_data = json.loads(raw_json)

# 提取图片和变体内关联数据
all_pictures = preload_data['initialState']['components']['gallery']['pictures']
variation_list = preload_data['initialState']['components']['variations']['data']

# 遍历输出每个变体对应的缩略图链接
for variation in variation_list:
    variation_name = variation['name']
    related_pic_ids = {pic['id'] for pic in variation['pictures']}
    thumb_urls = [pic['url'] for pic in all_pictures if pic['id'] in related_pic_ids]
    # 生成高清图链接
    hd_urls = [f"{url.rsplit('-',1)[0]}-F.{url.rsplit('.',1)[1]}" for url in thumb_urls]
    print(f"变体【{variation_name}】的缩略图列表:{thumb_urls}")
    print(f"变体【{variation_name}】的高清图列表:{hd_urls}")

该方案对按钮形式、下拉菜单形式的变体页面完全通用,两种页面的预加载数据结构一致,无需做额外适配。

内容的提问来源于stack exchange,提问作者José Guedes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:18:03