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

如何使用Selenium爬取网站并解决选择语言、点击搜索时的报错问题

问题修复方案

原代码存在的错误点

  • 下拉框操作语法错误:Selenium不能直接通过click("option",value="ENG")的方式选择下拉选项,需要导入Select工具类处理下拉选择框
  • 元素定位参数错误:find_element_by_id(searchBtn)中searchBtn是字符串值,缺少引号包裹
  • 驱动路径转义问题:Windows本地路径的反斜杠未转义,会触发路径解析错误,需要使用原始字符串或者双反斜杠
  • 缺少页面加载等待逻辑:页面元素还未加载完成就执行查找操作,大概率会触发元素不存在报错
  • 定义的headers无效:Selenium启动的ChromeDriver不直接读取自定义headers变量,要修改UA需要通过ChromeOptions配置

修正后的可运行代码

from selenium import webdriver
from selenium.webdriver.support.ui import Select
from time import sleep

# 配置Chrome选项
options = webdriver.ChromeOptions()
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.3")

# 驱动路径用原始字符串避免转义
driver = webdriver.Chrome(executable_path=r'C:\Program Files (x86)\chromedriver.exe', options=options)
# 加隐式等待,全局等待元素加载最长10秒
driver.implicitly_wait(10)
driver.get('https://www.counselingcalifornia.com/Find-a-Therapist')

# 用Select类处理下拉框
lang_select = Select(driver.find_element_by_id("language_field"))
lang_select.select_by_value("ENG")

# 定位搜索按钮注意加引号
driver.find_element_by_id("searchBtn").click()
print("successfully")
# 用完关闭驱动
sleep(3)
driver.quit()

补充说明

如果运行后仍出现驱动版本不匹配报错,下载和本地Chrome浏览器版本对应的chromedriver,替换路径中的驱动文件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:45:07