所以我试图抓一个使用JavaScript来显示一些文本的网站。我发现我应该使用Selenium WebDrivers而不是requests.get(),所以我尝试使用PhantomJS WebDriver,但这并不起作用,因为每当我试图抓住这个网站时它会成功地抓住它,但网站会产生HTML沿着这条线:
<p>Could not find page</p>
因此我猜测WebDriver无法正常工作。我现在正在尝试使用FireFox WebDriver - Geckodriver。 .exe的路径在我的PATH中,但是当我在python
中运行此命令时browser = webdriver.Firefox()
它吐出“无法在PATH中找到指定的geckodriver.exe”的错误。所以不是那样,我在Firefox()中使用了executable_path参数,所以看起来像这样:
browser = webdriver.Firefox(executable_path='path/to/geckodriver/')
当我现在运行它时,它会打开geckodriver.exe(在cmd提示屏幕上不显示任何内容)并在IDLE中吐出此错误:
WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line.
但是,当我尝试使用ChromDriver时,它可以正常工作。我不明白为什么这个有用而其他人不这样做?
问题:
答案 0 :(得分:0)
错误消息实际上是关于浏览器二进制文件,但不是关于geckodriver
。尝试使用以下内容:
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary('path/to/firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary)