我正在尝试制作一个网络自动抓取工具,并且我想从网站获取数据以用于我的数据模型。我正在使用以下代码来设置我的网络驱动程序:
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import pandas as pd
driver = webdriver.Chrome('/Users/dell/Downloads/chrome-win64')
但我收到如下所示的错误:
PS C:\Users\dell\Desktop\first> & c:/Users/dell/Desktop/first/.venv/Scripts/python.exe c:/Users/dell/Desktop/first/second.py
Traceback (most recent call last):
File "c:\Users\dell\Desktop\first\second.py", line 6, in <module>
driver = webdriver.Chrome('/Users/dell/Downloads/chrome-win64')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\dell\Desktop\first\.venv\Lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 45, in __init__
super().__init__(
File "C:\Users\dell\Desktop\first\.venv\Lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 50, in __init__
if finder.get_browser_path():
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\dell\Desktop\first\.venv\Lib\site-packages\selenium\webdriver\common\driver_finder.py", line 47, in get_browser_path
return self._binary_paths()["browser_path"]
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\dell\Desktop\first\.venv\Lib\site-packages\selenium\webdriver\common\driver_finder.py", line 56, in _binary_paths
browser = self._options.capabilities["browserName"]
^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'capabilities'
如何解决此问题?
此错误是因为为 ChromeDriver 提供了目录路径,而不是 ChromeDriver 可执行文件的实际路径。这就是解决方案:
- 下载 ChromeDriver:
- 访问 ChromeDriver 下载页面:https://chromedriver.chromium.org/downloads
-
下载与的 Chrome 浏览器版本匹配的 ChromeDriver 版本。要查看的版本,请在 Chrome 地址栏中输入
chrome://version
。 -
解压下载的 zip 文件。
-
放置 ChromeDriver:
-
可以将 ChromeDriver 可执行文件(
chromedriver.exe
)放置在以下任何位置:- 的项目的根目录。
-
一个专门用于驱动程序的目录,例如
C:\WebDrivers
。
-
指定 ChromeDriver 路径:
-
将
webdriver.Chrome()
中的路径更新为 ChromeDriver 可执行文件的正确路径。 -
示例: 如果将
chromedriver.exe
放在C:\WebDrivers
中,则代码将如下所示:python driver = webdriver.Chrome('C:\WebDrivers\chromedriver.exe')
完整更正后的代码:
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import pandas as pd
driver = webdriver.Chrome('C:\WebDrivers\chromedriver.exe') # 假设将 chromedriver.exe 放在此处
# 现在继续执行的网络抓取代码
其他提示:
- 确保的 ChromeDriver 版本与的 Chrome 浏览器版本兼容。
- 如果在将 ChromeDriver 添加到系统路径后仍然遇到问题,请重新启动的 IDE 或计算机,以确保更改生效。