【问题标题】:How do I correctly add a webdriver's location to the system's PATH?如何正确地将 webdriver 的位置添加到系统的 PATH 中?
【发布时间】:2021-09-04 15:37:42
【问题描述】:

我想在 Firefox (89.0.1) 浏览器中使用 selenium (3.141.0) 来做一些网页抓取。

我使用 macOS Big Sur 11.4 和 Python 3.9 工作。

以下代码抛出错误:

#! python3
# openFirefox.py - Opens a Firefox browser window with selenium.

from selenium import webdriver
browser = webdriver.Firefox()
type(browser)
browser.get('https://inventwithpython.com')

错误信息:

FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'

During handling of the above exception, another exception occurred:

Message: 'geckodriver' executable needs to be in PATH.

我知道这是用户的常见问题,并且在 SO 上有不同的帖子,但我仍然没有找到解决问题的好方法。

我在这里下载了最新的 geckodriver 版本: https://github.com/mozilla/geckodriver/releases

geckodriver-v0.29.1-macos.tar.gz

我的 PATH 变量如下所示:

我的想法是将 geckodriver 添加到我的 PATH 环境变量中,并将其放在以下目录中:

/usr/local/bin

文件在那里:

它是可执行的:

但是同样的错误信息又来了。

我已经阅读了一些帖子,我可以这样编写代码(这是一种解决方案):

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
browser = webdriver.Firefox(executable_path=GeckoDriverManager().install())
type(browser)
browser.get('https://inventwithpython.com')

我仍然想知道为什么将 geckodriver 目录添加到我的 PATH 变量的解决方案不起作用。

致所有网络爬虫:我该如何解决这个问题?

【问题讨论】:

    标签: python-3.x selenium selenium-webdriver web-scraping firefox


    【解决方案1】:

    驱动程序在哪里并不重要,您只需要给出正确的路径即可。将驱动程序放在您的 .py 旁边,然后试试这个。

    from selenium import webdriver
    from webdriver_manager.firefox import GeckoDriverManager
    browser = webdriver.Firefox(executable_path='./geckodriver')
    type(browser)
    browser.get('https://inventwithpython.com')
    

    【讨论】:

      猜你喜欢
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 2018-11-08
      • 2016-09-02
      相关资源
      最近更新 更多