爬虫技术笔记

发布于:2024-06-11 ⋅ 阅读:(52) ⋅ 点赞:(0)

一. Selenium技术

  1. 遇到安装并调用ChromeDriver问题:
    webdriver.Chrome DeprecationWarning: executable_path has been deprecated, please pass in a Service object

在 Selenium 4 中,executable_path 参数用于指定 ChromeDriver 的路径已经在 webdriver.Chrome() 构造函数中弃用(deprecated)。这个改变是为了增加更多的配置选项和更好的错误处理。

如果你之前是这样使用 webdriver.Chrome() 的:

from selenium import webdriver

driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

现在你应该使用 Service 对象来替代 executable_path,像这样:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# 创建一个Service对象,传入ChromeDriver的路径
s = Service('/path/to/chromedriver')

# 使用Service对象初始化Chrome WebDriver
driver = webdriver.Chrome(service=s)

这样,你就可以继续在你的测试中使用 Selenium WebDriver,而无需担心弃用警告。

另外,如果你的测试代码库很大,或者你不希望更改太多代码,你还可以使用 webdriver_manager 这样的库来自动管理 WebDriver 的下载和路径。webdriver_manager 会自动为你下载最新版本的 WebDriver,并在运行时为你找到它。

安装 webdriver_manager

pip install webdriver_manager

使用 webdriver_manager

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

# 使用webdriver_manager自动下载和获取ChromeDriver的路径
driver = webdriver.Chrome(ChromeDriverManager().install())

这样,你就不需要担心 WebDriver 的路径问题了,webdriver_manager 会为你处理一切。