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

使用Selenium+Python+XPATH抓取图片URL失败求助

排查Kohls商品图片URL抓取失败的问题

1. 页面没加载完就急着定位

Kohls的商品图大多是懒加载,页面得等几秒才能渲染完全。如果脚本一打开页面就跑XPATH定位,元素还没出来肯定返回None,甚至会因为页面状态异常导致浏览器直接关闭。

  • 换用显式等待,等图片元素加载出来再操作:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 最长等10秒,直到目标图片元素出现
wait = WebDriverWait(driver, 10)
img_elem = wait.until(EC.presence_of_element_located((By.XPATH, "你的XPATH路径")))

2. XPATH写得不对

虽然你没贴目标HTML,但这类问题常见坑点:

  • 用了动态属性:比如class/id带随机字符串,页面刷新一次属性就变,XPATH自然定位不到
  • 层级写死:比如硬写//div[3]/div[1]/img,网站微调页面结构就失效,尽量用带语义的属性定位,比如//img[@alt='商品名称']或者//div[contains(@class,'product-img')]/img
  • 没处理iframe:如果图片嵌套在iframe里,必须先切换到iframe才能定位元素
  • 找错属性:懒加载图片的真实URL可能存在data-src而不是src里,别直接取src

3. 网站反爬搞事情

Kohls能识别Selenium的自动化特征,直接给你关页面或者拦截请求:

  • 给Chrome加配置,隐藏自动化标识:
from selenium.webdriver.chrome.options import Options

opts = Options()
opts.add_experimental_option("excludeSwitches", ["enable-automation"])
opts.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=opts)
  • 加随机等待时间,别秒点秒操作,模拟真人浏览节奏
  • 如果遇到验证码,手动处理完再让脚本继续跑

4. 浏览器和驱动版本不兼容

Chrome和ChromeDriver版本对不上的话,启动后直接关浏览器是常有的事。去Chrome设置里看版本号,下载对应大版本的ChromeDriver(比如Chrome 118就下118.x的驱动)。

5. 脚本逻辑有bug

比如:

  • 定位到元素后,错用elem.text取图片URL,应该用elem.get_attribute('src')或者elem.get_attribute('data-src')
  • 还没提取数据就提前调用driver.quit(),浏览器直接关了自然拿不到结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:35:16