【发布时间】:2017-01-07 05:05:56
【问题描述】:
所以我试图抓取一个使用 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 时,它可以正常工作。我不明白为什么这个有效而其他无效?
问题:
- 为什么 PhantomJS 不工作?
- 为什么 GeckoDriver 不工作?
- 为什么 ChromeDriver 可以工作?
【问题讨论】: