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

Python Selenium程序无输出问题求助(附代码)

问题排查与修复方案

核心问题分析

你的代码无输出主要是3个原因:

  • 路径转义错误:ChromeDriver路径里的反斜杠未转义,Python会把\P这类字符当成无效转义,导致驱动加载异常。
  • 多类名定位失效:By.CLASS_NAME不支持空格分隔的多个类名,这种写法会直接找不到元素。
  • 未等待页面加载:亚马逊页面加载较慢,直接查找元素时DOM还没渲染完成,自然拿不到内容。

修复后的代码

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 = webdriver.Chrome(r"C:\Program Files (x86)\chromedriver.exe")
# 隐式等待10秒,给页面足够加载时间
driver.implicitly_wait(10)

driver.get('https://www.amazon.co.uk/s?rh=n%3A15488758031&language=en_GB&brr=1&rd=1')

# 用CSS_SELECTOR定位多类名元素,替代CLASS_NAME
# 显式等待元素加载完成,避免DOM未渲染的问题
wait = WebDriverWait(driver, 15)
saites = wait.until(EC.presence_of_all_elements_located(
    (By.CSS_SELECTOR, '.a-link-normal.s-underline-text.s-underline-link-text.s-link-style.a-text-normal')
))

for saite in saites:
    adrese = saite.get_attribute('href')
    # 打印标题和链接
    print(f"标题: {saite.text}")
    print(f"链接: {adrese}\n")

driver.quit()

额外优化建议

  • 添加反爬规避:亚马逊有反爬机制,建议给浏览器添加User-Agent并禁用自动化标识:
    options = webdriver.ChromeOptions()
    options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    driver = webdriver.Chrome(r"C:\Program Files (x86)\chromedriver.exe", options=options)
    
  • 简化定位逻辑:原代码先找sg-col-inner再找子元素,可能遗漏部分商品,直接定位所有商品链接更可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:52:23