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

如何使用Selenium以文本格式打印Web元素列表

解决Selenium Web元素可读文本打印问题

你现在的问题是直接将Selenium的WebElement对象存入列表,打印时自然只会显示对象的会话标识,而非实际文本内容。要获取可读文本,需要提取元素的文本内容或对应属性,核心是使用.text属性(获取元素显示文本),部分场景可能需要用get_attribute()获取特定属性值。

修改后的代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("https://www.morphmarket.com/all/c/reptiles/pythons/ball-pythons")
wait = WebDriverWait(driver, 10)

snakes = wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "a.animalCard--avL0R")))
links = [i.get_attribute("href") for i in snakes]  # 简化列表推导式

elements_details = []
for link in links:
    driver.get(link)
    # 提取每个字段的文本内容,而非存储WebElement对象
    snake_info = {}
    snake_info["genes"] = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "h1.animalTitle--cH6qE"))).text
    snake_info["snake"] = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "h2.animalSubTitle--mhYId"))).text
    snake_info["price"] = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "h1.salePrice--qNIIs"))).text

    # 处理Birth相关信息,提取每个元素的文本
    birth_elements = wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "div.labelValueContainer--z1CP3")))
    snake_info["birth_info"] = [birth.text for birth in birth_elements]

    # 处理公司信息,提取文本
    company_elements = wait.until(EC.visibility_of_all_elements_located((By.XPATH, "(//div[@class='infoWrapper--O_L9E'])[2]")))
    snake_info["company_info"] = [element.text for element in company_elements]

    elements_details.append(snake_info)
    # 打印单条蛇的信息,更易读
    print("当前蛇信息:")
    for key, value in snake_info.items():
        print(f"{key}: {value}")
    print("-" * 50)

# 最后打印所有收集到的信息
print("\n所有蛇的信息汇总:")
for idx, info in enumerate(elements_details, 1):
    print(f"\n第{idx}条蛇:")
    for key, value in info.items():
        print(f"{key}: {value}")

driver.quit()

关键修改点

  • 用.text属性替换直接存储WebElement对象,获取元素的实际显示文本
  • 优化数据结构:每条蛇的信息存入一个字典,避免零散的条目,结构更清晰
  • 修复拼写错误:将brith改为正确的birth
  • 使用列表推导式简化代码(如links的生成)
  • 调整打印逻辑,逐条打印单条蛇的信息,可读性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 23:32:17