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

使用Selenium Python从指定网站抓取企业名称的技术求助

解决方案

问题分析

原代码存在两个关键问题:

  • 使用find_elements返回的是元素列表,无法直接调用.text属性,需获取列表中的单个元素后再操作
  • 未等待页面元素加载完成就尝试定位,可能因元素未渲染导致获取失败

可运行代码

结合你已导入的库,修正后的完整代码如下:

# 配置Chrome选项(可选启用无头模式,不显示浏览器窗口)
options = Options()
options.add_argument("--headless=new")
options.add_argument("--disable-gpu")

# 初始化Chrome驱动(使用WebDriverManager自动管理驱动版本)
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

try:
    # 打开目标页面
    driver.get("https://register.fca.org.uk/s/firm?id=001b000000MfNWNAA3")
    
    # 等待企业名称元素加载完成,最长等待10秒
    wait = WebDriverWait(driver, 10)
    firm_name_element = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.slds-media__body h1 > a')))
    
    # 获取并打印企业名称
    firm_name = firm_name_element.text
    print("企业名称:", firm_name)
except TimeoutException:
    print("超时:未找到企业名称元素")
finally:
    # 关闭浏览器
    driver.quit()

关键说明

  • 使用WebDriverWait结合EC.visibility_of_element_located等待元素可见,确保页面渲染完成后再定位
  • 直接获取单个目标元素,避免列表操作的冗余问题
  • 采用WebDriverManager自动安装匹配的ChromeDriver,无需手动指定executable_path,提升跨环境兼容性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:02:05