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

Python无法提取img标签src属性,求Nike商品图片URL提取方案

提取Nike女鞋页面商品图片URL的解决方案

原代码存在的问题

  • conte = soup.find_all(...)返回的是元素列表,直接调用.find()会报错,必须遍历每个商品卡片
  • Nike商品图片采用懒加载,真实URL通常存在data-src属性而非src
  • 未将提取到的URL存入列表,仅打印无法保存有效结果
  • 固定time.sleep()不够可靠,滚动加载的判断逻辑存在漏洞

修正后的代码

import time
from selenium import webdriver
from bs4 import BeautifulSoup

driver = webdriver.Chrome('D:/chromedrive/chromedriver.exe')
wshoes_images = []  # 用于存储图片URL的列表
url = "https://www.nike.com/gb/w/womens-lifestyle-shoes-13jrmz5e1x6zy7ok"
driver.get(url)

SCROLL_PAUSE_TIME = 2
last_height = driver.execute_script("return document.documentElement.scrollHeight")

while True:
    # 滚动到页面底部
    driver.execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")
    time.sleep(SCROLL_PAUSE_TIME)
    
    # 获取新的滚动高度
    new_height = driver.execute_script("return document.documentElement.scrollHeight")
    
    # 解析当前页面的商品卡片
    page_source = driver.page_source
    soup = BeautifulSoup(page_source, 'html.parser')
    product_cards = soup.find_all('div', class_='product-card__body')
    
    # 遍历每个商品卡片提取图片URL
    for card in product_cards:
        img_element = card.find('img', class_='product-card__hero-image css-1fxh5tw')
        # 优先取懒加载的真实地址data-src,无则取src
        img_url = img_element.get('data-src') or img_element.get('src')
        # 去重后存入列表
        if img_url and img_url not in wshoes_images:
            wshoes_images.append(img_url)
            print(img_url)
    
    # 判断是否已滚动到底部,终止循环
    if new_height == last_height:
        print("已加载所有商品,停止滚动")
        break
    last_height = new_height

# 输出所有提取到的图片URL
print("\n全部商品图片URL:")
for url in wshoes_images:
    print(url)

# 关闭浏览器释放资源
driver.quit()

关键修改说明

  1. 遍历商品卡片:对soup.find_all()返回的列表逐个处理,确保每个商品的图片都被提取
  2. 适配懒加载:优先获取data-src属性,这是Nike页面懒加载图片的真实地址
  3. 去重存储:用列表存储URL并做去重,避免重复抓取同一图片
  4. 优化滚动逻辑:每次滚动后立即解析页面,确保加载出的商品都被处理
  5. 资源释放:最后调用driver.quit()关闭浏览器,避免残留进程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:35:23