python - Selenium Python - 网络驱动程序
问题描述
我正在使用 selenium 爬取一个 javascript 网站,问题是,Firefox 浏览器打开,但对 URL 的调用没有完成。但是,当我关闭浏览器时,就完成了对 URL 的调用,当然我得到了缺少的驱动程序异常。你认为这个问题是从哪里来的。
知道:
- 所有程序都是最新的
- 我的解决方案在本地运行良好,但是当我尝试在服务器上部署它时,我开始遇到问题
示例:在我的本地机器上,我运行这个脚本,一切都很顺利,但是当我在服务器(Linux)上运行它时,只有浏览器打开并且没有调用获取 URL
from selenium import webdriver
import time
geckodriver_path = r'.../geckodriver'
driver = webdriver.Firefox(executable_path= geckodriver_path)
time.sleep(3)
driver.get("http://www.stackoverflow.com")
解决方案
我最终找到了解决方案:
from selenium import webdriver
import time
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
geckodriver_path = r'/path_to/geckodriver'
binary = FirefoxBinary(r'/usr/bin/firefox')
capabilities = webdriver.DesiredCapabilities().FIREFOX
capabilities["marionette"] = False
driver = webdriver.Firefox(firefox_binary=binary,
executable_path= geckodriver_path,
capabilities=capabilities)
time.sleep(3)
driver.get("https://stackoverflow.com/")
time.sleep(6)
driver.close()
# solution from:
# https://github.com/SeleniumHQ/selenium/issues/3884
# https://stackoverflow.com/questions/25713824/setting-path-to-firefox-binary-on-windows-with-selenium-webdriver
推荐阅读
- json - 从 url 获取 json 卡住了
- google-maps - Google Maps Platform 突然拒绝了我的请求
- docker - 在 Openshift 上运行 Cassandra
- mongodb - 性能聚合 MongoDB 匹配和示例
- javascript - 单击按钮导航到路由
- javascript - JavaScript 数学对象
- python - 带有有效 JSON 的 Python json.load(file) 错误
- javascript - ReactJS 设置 display='inline' onMouseOver
- r - 使 geom_bar 按升序显示值
- ruby - Ruby正则表达式如何排除带引号的命中