当前位置: 首页 > news >正文

python 自动化采集 ChromeDriver 安装

ChromeDriver 是一个用于自动化控制 Google Chrome 浏览器的工具,常与 Selenium 一起使用,用于 Web 自动化测试、爬虫、UI 自动化等场景。以下是 ChromeDriver 的详细使用教程。


一、安装准备

1. 安装 Python(如使用 Python)

如果你使用 Python,确保已安装 Python(推荐 3.7+):

python --version

2. 安装 Selenium

pip install selenium

3. 下载 Chrome 浏览器

确保你的系统已安装 Google Chrome 浏览器。
可前往 https://www.google.com/chrome/ 下载。

4. 下载 ChromeDriver

ChromeDriver 的版本必须与你安装的 Chrome 浏览器版本匹配。

  • 查看 Chrome 版本:
    打开 Chrome → 地址栏输入 chrome://version → 查看“版本”字段,例如 129.0.6668.90

  • 下载对应版本的 ChromeDriver:
    官网地址:https://chromedriver.chromium.org/
    或直接访问:https://googlechromelabs.github.io/chrome-for-testing/

  • 解压后得到 chromedriver(Linux/macOS)或 chromedriver.exe(Windows)


二、配置 ChromeDriver

方法一:将 ChromeDriver 放入系统 PATH

  • Windows:将 chromedriver.exe 放入 C:\Windows 或添加其所在目录到系统环境变量 PATH。
  • macOS/Linux:将 chromedriver 放入 /usr/local/bin 或其他 PATH 目录,并赋予执行权限:
    chmod +x chromedriver
    sudo mv chromedriver /usr/local/bin/
    

方法二:在代码中指定路径(推荐初学者)

from selenium import webdriver# 指定 chromedriver 路径
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

⚠️ 注意:Selenium 4.6+ 默认使用 WebDriver Manager 自动管理驱动,无需手动下载。


三、使用 WebDriver Manager(推荐方式)

安装 webdriver-manager

pip install webdriver-manager

示例代码(自动下载匹配的 ChromeDriver)

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager# 自动下载并配置 ChromeDriver
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)# 打开网页
driver.get("https://www.baidu.com")
print(driver.title)# 关闭浏览器
driver.quit()

四、常用操作示例

1. 元素定位

from selenium.webdriver.common.by import By# 通过 ID 查找
element = driver.find_element(By.ID, "kw")# 通过 CSS 选择器
element = driver.find_element(By.CSS_SELECTOR, "input#kw")# 通过 XPath
element = driver.find_element(By.XPATH, "//input[@id='kw']")

2. 模拟输入与点击

element.send_keys("Selenium")
search_btn = driver.find_element(By.ID, "su")
search_btn.click()

3. 等待页面加载(显式等待)

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECwait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "result")))

4. 截图

driver.save_screenshot("screenshot.png")

五、常见问题

Q1: SessionNotCreatedException: This version of ChromeDriver only supports Chrome version XX

  • 原因:ChromeDriver 与 Chrome 浏览器版本不匹配。
  • 解决:升级 Chrome 或下载对应版本的 ChromeDriver;或使用 webdriver-manager 自动处理。

Q2: 驱动无法执行(macOS/Linux)

  • 解决:运行 chmod +x chromedriver 赋予执行权限。

Q3: 浏览器自动关闭太快看不到效果?

  • driver.quit() 前加 input("按回车退出...") 暂停。

六、进阶:无头模式(Headless)

from selenium.webdriver.chrome.options import Optionschrome_options = Options()
chrome_options.add_argument("--headless")  # 无界面模式
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")driver = webdriver.Chrome(service=service, options=chrome_options)

七、参考资料

  • Selenium 官方文档:https://www.selenium.dev/documentation/
  • ChromeDriver 官网:https://chromedriver.chromium.org/
  • WebDriver Manager:https://pypi.org/project/webdriver-manager/

如果你告诉我你使用的操作系统(Windows/macOS/Linux)和编程语言(如 Python/Java/JS),我可以提供更具体的步骤!

http://www.dtcms.com/a/461478.html

相关文章:

  • 苏州招聘网站建设推广费
  • java8提取list中对象有相同属性值的对象或属性值
  • cuda编程笔记(26)-- 核函数使用任务队列
  • 存储芯片核心产业链研发实力:兆易创新、北京君正、澜起科技、江波龙、长电科技、佰维存储,6家龙头公司研发实力深度数据
  • 《Seq2Time: Sequential Knowledge Transfer for Video LLMTemporal Grounding》
  • 山东省建设部网站官网网站备案审核通过后
  • 浏览器兼容性问题处理
  • Day 09(下) B2a实例解说----exampleB2a.cc+ActionInitialization+PrimaryGeneratorAction
  • 分布式锁:Redisson的可重入锁
  • 计算机硬件相关(AI回答)
  • 网站设计中的用户体验大型网站需要什么样的团队
  • 淘宝网站开发方式网站托管 济南
  • 重庆网站seo案例网站推广用什么方法最好
  • sql报错:java.sql.SQLSyntaxErrorException: Unknown column ‘as0‘ in ‘where clause‘
  • 做网站是什么公司做陶瓷公司网站
  • CentOS 7上安装SonarQube8.9
  • 遗留系统微服务改造(二):数据迁移实战攻略与一致性保证
  • IO操作(Num22)
  • 领码方案|微服务与SOA的世纪对话(6):组织跃迁——智能架构下的团队与文化变革
  • 怎么什么软件可以吧做网站网站被百度收录很重要
  • C++ 单例模式(Singleton)详解
  • 面向未来的数据平台
  • C++5d
  • Transformer实战(21)——文本表示(Text Representation)
  • 网站空间商 权限梵克雅宝
  • 【Vue 3 】——setup、ref、watch
  • 做期货网站违法的吗淄博市住房和城乡建设局网站
  • 使用feign进行远程调用出现的问题(文件服务参数接收为null)
  • 国自然·医工交叉热点|通用医学影像分割基础模型与数据库
  • React Native:关于react自定义css属性的位置