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

如何使用Python+Selenium爬取宜家新加坡站点门店库存弹窗数据

基于Selenium的宜家新加坡站弹窗库存信息爬取实操步骤
  • 前置准备:确保你的chromedriver版本和本地安装的Chrome浏览器版本完全匹配,调试阶段建议不开启无头模式,方便直观观察页面交互情况,排查问题。
  • 第一步:处理页面遮挡元素,页面加载完成后优先点击cookie同意按钮,避免拦截后续按钮点击操作,代码示例:
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

# 初始化driver
driver = webdriver.Chrome()
driver.get("https://www.ikea.com/sg/en/p/knapper-standing-mirror-white-80396243/")
driver.maximize_window()
wait = WebDriverWait(driver, 10)

# 点击接受cookie
try:
    cookie_btn = wait.until(EC.element_to_be_clickable((By.ID, "onetrust-accept-btn-handler")))
    cookie_btn.click()
except:
    # 没有cookie弹窗则跳过
    pass
  • 第二步:点击库存查询按钮,等待按钮完全可点击后再执行点击操作,避免点击失效:
stock_btn = wait.until(EC.element_to_be_clickable((By.XPATH, "//span[text()='Check in-store stock']/ancestor::button")))
stock_btn.click()
  • 第三步:等待弹窗加载完成,宜家的库存弹窗为页面内动态生成的模态框,默认不需要切换新窗口,若定位不到元素可先检查是否嵌套了iframe,如有则先切换到对应iframe:
# 可选:若弹窗嵌套在iframe中则执行切换,否则跳过
try:
    stock_iframe = wait.until(EC.presence_of_element_located((By.XPATH, "//iframe[contains(@src, 'stock-check')]")))
    driver.switch_to.frame(stock_iframe)
except:
    pass
  • 第四步:提取门店和库存信息,定位弹窗内的所有门店条目,循环读取对应字段即可:
store_list = wait.until(EC.presence_of_all_elements_located((By.CLASS_NAME, "range-revamp-stock-check__store")))
result = []
for store in store_list:
    name = store.find_element(By.CLASS_NAME, "range-revamp-stock-check__store-name").text.strip()
    status = store.find_element(By.CLASS_NAME, "range-revamp-stock-check__stock-status-text").text.strip()
    result.append({
        "门店名称": name,
        "库存状态": status
    })

# 输出结果验证
for item in result:
    print(item)

补充说明:如果点击按钮后弹出的是独立新窗口,可以通过driver.window_handles获取所有窗口句柄,切换到新打开的窗口句柄后再执行元素定位,操作完成后如需返回原页面再切回原窗口句柄即可。若页面类名有更新,直接打开浏览器F12开发者工具,选中对应元素替换代码中的类名即可。

内容的提问来源于stack exchange,提问作者mathlau

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:15:03