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

Python使用Selenium获取img标签src属性报错如何解决

问题原因

你的代码存在4个核心错误:

  • 未访问目标页面:初始化Chrome驱动后,没有调用driver.get("目标页面地址")打开要爬取的网页,浏览器默认打开空白页,自然找不到目标img元素。
  • 元素查找方法用错:find_elements(带s)返回的是所有匹配元素组成的列表,列表对象本身没有src属性,直接调用取属性必然报错。要取单个元素请用find_element(单数形式),如果要取多个元素的src需要遍历返回的列表逐个获取。
  • 定位器写法错误:
    • 你写的绝对XPath/html/body/...容错性极差,页面DOM结构稍有变动就会定位失败
    • 你写的CSS选择器带:before伪元素,伪元素是CSS渲染生成的,不是真实存在的DOM节点,根本无法通过Selenium定位到,更不可能拿到src属性
    • 你定义的img_class是外层包裹div的类名,不是img标签本身的类名,用这个定位拿到的是div元素,div天然没有src属性
  • 缺少元素等待:页面加载、元素渲染需要时间,打开页面后立刻定位元素,很可能元素还没加载完成,导致定位失败。

另外不建议直接调用元素的__getattribute__取属性,Selenium提供了get_attribute()方法专门用来获取元素属性,兼容性更好,对动态加载的属性也能正确读取。

修正后的示例代码
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
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
# 替换成你要访问的实际页面地址
driver.get("你的目标页面URL")

try:
    # 显式等待最多10秒,等目标img元素加载完成
    # 优先用相对定位,比如根据img的类名、alt属性等定位,稳定性远高于绝对XPath
    item_img = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, '//img[contains(@class, "thumbnail_thumb")]'))
    )
    img_src = item_img.get_attribute('src')
    print(img_src)
finally:
    driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:15:47