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

Selenium中each_item.find_element(By.CSS_SELECTOR)调用失败求助

问题解决:Selenium查找子元素失败(NoSuchElementException)

核心原因

不是Selenium移除了属性,是目标网站ADIGlobal的页面元素结构/类名已经更新,你原代码里的CSS选择器已经匹配不到当前页面的元素,才会抛出NoSuchElementException。

修复方案

1. 重新获取有效元素选择器

打开目标页面,按F12调出浏览器开发者工具,重新定位以下元素的选择器:

  • 商品列表的父容器(替换原代码里的[class='rd-thumb-details-price'])
  • 商品标题、型号、链接、价格、库存对应的子元素选择器

2. 优化等待逻辑,替换硬延时

把原代码的time.sleep(5)换成显式等待,确保元素加载完成后再操作,避免因页面加载慢导致的查找失败:

from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 15)
# 替换成你新找到的商品容器选择器
search_items = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "新的商品容器选择器")))

3. 添加容错处理,避免循环中断

给每个元素查找添加异常捕获,单个商品元素缺失时直接跳过,不影响整个爬取流程:

from selenium.common.exceptions import NoSuchElementException

for each_item in search_items:
    try:
        # 这里替换成新的选择器
        item_title = each_item.find_element(By.CSS_SELECTOR, "新标题选择器").text.strip()
        item_name = each_item.find_element(By.CSS_SELECTOR, "新型号选择器").text.strip()[7:]
        item_link = each_item.find_element(By.CSS_SELECTOR, "新链接选择器").get_attribute('href')
        item_price = each_item.find_element(By.CSS_SELECTOR, "新价格选择器").text.strip()[2:].replace("\n", ".")
        item_stock = each_item.find_element(By.CSS_SELECTOR, "新库存选择器").text.strip()[19:]
        
        data_adi.append({
            "title": item_title,
            "name": item_name,
            "Price": item_price,
            "Stock": item_stock,
            "link": item_link
        })
    except NoSuchElementException:
        print("单个商品元素缺失,跳过")
        continue

4. 修正页码逻辑(重要)

原代码range(pagenum)会生成从0开始的页码,而目标网站的页码通常从1开始,会导致访问page=0的无效页面,建议改成:

for i in range(1, pagenum+1):
    driver.get(f"https://www.adiglobaldistribution.us/search?attributes=dd1a8f50-5ac8-ec11-a837-000d3a006ffb&page={i}&criteria=Tp-link")

额外提醒

  • 不要依赖固定索引截取文本(比如text[7:]),如果网站文本格式变化,这段代码会直接报错,建议用split等更灵活的字符串处理方式
  • 网站会不定期更新页面结构,每次爬取前都要确认选择器是否有效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:10:29