Could not find a version that satisfy the requirement geckodriver==0.24.0 (from -r /app/requirements.txt (line 4)) selenium Geckodriver 错误
Could not find a version that satisfies the requirement geckodriver==0.24.0 (from -r /app/requirements.txt (line 4)) error with Selenium Geckodriver
我的本地机器没有问题。
但是当我将它部署在云服务器中时,特别是在 Scrapinghub 中
我需要添加 geckodriver
如何在我的 requirement.txt 中包含 geckodriver?
这是我的工作代码
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
def parse_subpage(self, response):
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http",
"localhost")
profile.set_preference("network.proxy.http_port",
3128)
profile.update_preferences()
capabilities = webdriver.DesiredCapabilities().FIREFOX
capabilities["marionette"] = True
driver = webdriver.Firefox(capabilities=capabilities,
firefox_profile=profile)
driver.get('sample.com')
driver.quit()
我的Requirement.txt
mysql-connector-python
pytz==2018.9
selenium==3.13.0
geckodriver==0.24.0
观察到的错误:
ERROR: Could not find a version that satisfies the requirement geckodriver==0.24.0 (from -r /app/requirements.txt (line 4)) (from versions: none)
这个错误信息...
Could not find a version that satisfies the requirement geckodriver==0.24.0 (from -r /app/requirements.txt (line 4)) (from versions: none)
...表示 GeckoDriver 尝试通过 Firefox.[=13= 启动浏览会话时出错]
geckodriver==0.24.0和selenium==3.13.0[之间似乎没有不兼容 =43=] 根据 Supported platforms.
中的文档
据推测,这看起来像是 Mozilla Firefox 安装位置的问题。 Firefox 未安装在您的系统中,或者 Firefox 未安装在 default(所需)位置.
解决方案
您需要在默认位置安装 Firefox。如果 Firefox 安装在 自定义 位置,您需要传递 [=25] 的 绝对路径 =]firefox binary如下:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
capabilities = webdriver.DesiredCapabilities().FIREFOX
capabilities["marionette"] = True
binary = FirefoxBinary('C:/Program Files/Mozilla Firefox/firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary, capabilities=capabilities, executable_path="C:/Utility/BrowserDrivers/geckodriver.exe")
driver.get("http://www.google.com")
我的本地机器没有问题。 但是当我将它部署在云服务器中时,特别是在 Scrapinghub 中 我需要添加 geckodriver
如何在我的 requirement.txt 中包含 geckodriver?
这是我的工作代码
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
def parse_subpage(self, response):
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http",
"localhost")
profile.set_preference("network.proxy.http_port",
3128)
profile.update_preferences()
capabilities = webdriver.DesiredCapabilities().FIREFOX
capabilities["marionette"] = True
driver = webdriver.Firefox(capabilities=capabilities,
firefox_profile=profile)
driver.get('sample.com')
driver.quit()
我的Requirement.txt
mysql-connector-python
pytz==2018.9
selenium==3.13.0
geckodriver==0.24.0
观察到的错误:
ERROR: Could not find a version that satisfies the requirement geckodriver==0.24.0 (from -r /app/requirements.txt (line 4)) (from versions: none)
这个错误信息...
Could not find a version that satisfies the requirement geckodriver==0.24.0 (from -r /app/requirements.txt (line 4)) (from versions: none)
...表示 GeckoDriver 尝试通过 Firefox.[=13= 启动浏览会话时出错]
geckodriver==0.24.0和selenium==3.13.0[之间似乎没有不兼容 =43=] 根据 Supported platforms.
中的文档据推测,这看起来像是 Mozilla Firefox 安装位置的问题。 Firefox 未安装在您的系统中,或者 Firefox 未安装在 default(所需)位置.
解决方案
您需要在默认位置安装 Firefox。如果 Firefox 安装在 自定义 位置,您需要传递 [=25] 的 绝对路径 =]firefox binary如下:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
capabilities = webdriver.DesiredCapabilities().FIREFOX
capabilities["marionette"] = True
binary = FirefoxBinary('C:/Program Files/Mozilla Firefox/firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary, capabilities=capabilities, executable_path="C:/Utility/BrowserDrivers/geckodriver.exe")
driver.get("http://www.google.com")