我用Selenium、Pandas、bf4和GeckoDriver制作了一个网络抓取脚本。
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from webdriver_manager.firefox import GeckoDriverManager
url = "https://example/url/target"
option = Option()
option.headlers = True
driver = webdriver.Firefox(executable_path=r'C:\Users\Public\geckodriver.exe')
driver.get(url)
使用此代码,脚本工作100%,但由于我需要它是一个可移植的应用程序(传输到其他计算机),我不希望用户必须手动指定Geckodriver路径,更不用说要下载它了。
Geckodriver有一个自动安装程序,但是在我试图制造的所有方法中,我得到了一个错误,在论坛上搜索我找到了这个选项(和错误)。
url = "https://example/url/target"
driver = webdriver.Firefox(executable_path=rGeckoDriverManager().install())
driver.get("https:www.python.org")
driver.get(url)
结果:
ConnectionError: HTTPSConnectionPool(host = 'api.github.com', port=443): Max retries exceeded with url: /repos/mozilla/geckodriver/releases/latest (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000025186487F98>: Failed to stabilize a new connection: [Errno 11001 getaddriinfo failed',))
我还尝试了如下:https://pypi.org/project/geckodriver-autoinstaller/#description:
import geckodriver_autoinstaller
geckodriver_autoinstaller.install()
driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
结果:
<urlopen error [Errno 11001] getaddrinfo failed>
所有这些选项我也用socket.getddrinfo('localhost', 8080)
和os.environ['GH_TOKEN'] = 'exampletoken'
中的Git个人令牌进行了测试。
有人知道为什么我不能自动安装驱动程序吗?
W10 64位,火狐最新版本,Libs和anaconda最新版本,Python = 3.6,因特网与虚拟专用网(工作)
发布于 2022-02-13 21:57:20
不过,可能是一个错误,而不是rGeckoDriverManager()
,您应该在行中使用GeckoDriverManager()
:
driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
实际上,您的代码块是:
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
driver.get("https://www.google.com")
控制台输出:
====== WebDriver manager ======
Current firefox version is 97.0
Get LATEST geckodriver version for 97.0 firefox
Driver [C:\Users\debanjan.bhattacharj\.wdm\drivers\geckodriver\win64\v0.30.0\geckodriver.exe] found in cache
C:\Users\debanjan.bhattacharj\Desktop\Python Programs\Selenium3-GeckoDriverManager.py:8: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
https://stackoverflow.com/questions/71105142
复制相似问题