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

使用Python Selenium爬取二手车标签面板数据仅得部分内容求助

解决Mercado Libre二手车标签面板爬取问题

核心思路

Mercado Libre的标签面板是动态切换模式——只有点击对应标签后,该分类下的内容才会加载并显示。所以需要先遍历所有标签按钮,逐个点击切换后,再提取对应分类的信息。

完整代码示例

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# 初始化浏览器
driver = webdriver.Chrome()
driver.get("https://auto.mercadolibre.com.ar/MLA-1363201661-chevrolet-tracker-18-ltz-4x2-2019-_JM#position=1&search_layout=grid&type=item&tracking_id=b0581b52-3437-4d39-b6ad-2a3ebbb053f4")

# 处理页面可能出现的弹窗(比如Cookie提示)
try:
    close_btn = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CLASS_NAME, "ui-modal__close"))
    )
    close_btn.click()
except:
    pass  # 没有弹窗就跳过

# 等待标签栏加载完成
wait = WebDriverWait(driver, 10)
tabs = wait.until(
    EC.presence_of_all_elements_located((By.CLASS_NAME, "ui-pdp-specs__tab"))
)

# 存储所有标签的信息
all_specs = {}

for index, tab in enumerate(tabs):
    # 滚动到标签位置,避免被页面元素遮挡无法点击
    driver.execute_script("arguments[0].scrollIntoView();", tab)
    time.sleep(1)
    
    # 点击标签(常规点击失败时,用JavaScript强制点击)
    try:
        tab.click()
    except:
        driver.execute_script("arguments[0].click();", tab)
    
    # 等待当前标签的内容加载完成
    wait.until(
        EC.presence_of_all_elements_located((By.CLASS_NAME, "ui-pdp-specs__tab-spec"))
    )
    time.sleep(0.5)  # 确保内容完全渲染
    
    # 获取标签标题和对应规格信息
    tab_title = tab.text.strip()
    specs = driver.find_elements(By.CLASS_NAME, "ui-pdp-specs__tab-spec")
    spec_list = [spec.text.strip() for spec in specs]
    
    # 将信息存入字典
    all_specs[tab_title] = spec_list

# 打印所有爬取到的信息
for title, specs in all_specs.items():
    print(f"--- {title} ---")
    for spec in specs:
        print(spec)
    print("\n")

# 关闭浏览器
driver.quit()

关键步骤说明

  1. 弹窗处理:先关闭页面可能出现的Cookie提示或广告弹窗,避免影响后续元素定位。
  2. 标签遍历:定位所有标签按钮,通过循环逐个处理。用scrollIntoView确保标签处于可视区域,防止点击失败。
  3. 标签切换:优先用常规点击,遇到元素遮挡时改用JavaScript点击,提升稳定性。
  4. 内容提取:点击标签后等待内容加载完成,提取标签标题和对应规格,存入字典方便后续分析。

注意事项

  • 确保ChromeDriver版本与Chrome浏览器版本匹配,否则会启动失败。
  • 如果网络较慢,可适当延长time.sleep的时长,或用更精准的等待条件替代固定等待。
  • 频繁爬取可能触发平台反爬机制,建议添加随机延迟,避免短时间内发送大量请求。

内容的提问来源于stack exchange,提问作者Exequiel Di Marzo Broggi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:53:31