Python Selenium WebDriverException:消息:连接被拒绝

Python Selenium WebDriverException:消息:连接被拒绝,python,selenium,selenium-webdriver,firefox,raspberry-pi3,Python,Selenium,Selenium Webdriver,Firefox,Raspberry Pi3,我正在raspberry pi 3上运行python脚本 它基本上检查不同网站上的特定字符串 当我在笔记本电脑上运行脚本时,它运行得非常完美,没有任何异常 在pi上,我始终得到以下错误: selenium.common.exceptions.WebDriverException:消息:连接被拒绝 我使用geckodriver v23.0,因为它与raspberry pi 3的arm7兼容 Firefox:Firefox v.70.0 硒:Selenium v.3.141.0 代码: 来自sele

我正在raspberry pi 3上运行python脚本

它基本上检查不同网站上的特定字符串

当我在笔记本电脑上运行脚本时,它运行得非常完美,没有任何异常

在pi上,我始终得到以下错误:

selenium.common.exceptions.WebDriverException:消息:连接被拒绝

我使用geckodriver v23.0,因为它与raspberry pi 3的arm7兼容

Firefox:
Firefox v.70.0

硒:
Selenium v.3.141.0

代码:

来自selenium.webdriver.common.desired_功能导入desired功能
从bs4导入BeautifulSoup
从selenium.webdriver.firefox.options将选项导入为FirefoxOptions
从selenium导入webdriver
从日期时间导入日期时间,日期
从pyvirtualdisplay导入显示
mystring=“Auslastung”
studio1=“柏林利希特菲尔德”
studio2=“柏林马尔扎恩”
studio3=“柏林利希滕贝格”
studio4=“柏林雷尼肯多夫”
studio5=“berlin mahlsdorf”
studio6=“berlin wilmersdorf”
研究7=“柏林西斯潘道”
studio8=“柏林斯潘道”
工作室=studio1,studio2,studio3,studio4,studio5,studio6,studio7,studio8
def get_auslastung(工作室):
显示=显示(可见=0,大小=(1024768))
display.start()
firefoxpath=FirefoxBinary(“/usr/bin/firefox”)
url=”https://www.mcfit.com/de/fitnessstudios/studiosuche/studiodetails/studio/"
#cap=DesiredCapabilities().FIREFOX
#帽子[“木偶”]=假
选项=FirefoxOptions()
选项。添加参数(“--headless”)
driver=webdriver.Firefox(options=options,Firefox\u binary=firefoxpath,executable\u path=“/usr/local/bin/geckodriver”)
获取驱动程序(url+studio)
html\u content=driver.page\u源
soup=BeautifulSoup(html\u内容,“html.parser”)
auslastung=soup.find_all('div',{'class':'sc iJCRLp eDJvQP'})
#打印(auslastung)
#auslastung=str(auslastung).split(“”[1]
#打印(auslastung)
#auslastung=auslastung[:auslastung.rfind(“”)]
#打印(auslastung)
auslastung=str(auslastung).split(“auslastung”)[1]
#打印(auslastung)
auslastung=auslastung[:auslastung.rfind('%')]
打印(auslastung)
now=datetime.now()
当前时间=现在。strftime(“%H:%M:%S”)
#打印(“当前时间=”,当前时间)
今天=日期。今天()
印刷(今日)
#印刷品(工作室)
ergebnis={'date':今天,'time':当前时间,'studio':studio'auslastung':auslastung}
返回ergebnis
驱动程序关闭()
display.stop()
导入csv
打开('data.csv',mode='a')作为文件:
FieldName=['date','time','studio','auslastung']
writer=csv.DictWriter(文件,字段名=字段名)
今日警告=日期。今日()
对于工作室中的工作室:
尝试:
印刷品(工作室)
编剧、编剧罗(get_auslastung(工作室))
除例外情况外:
打印(!!!!重试!!!!))
编剧、编剧罗(get_auslastung(工作室))
#打印(“例外:继续”)
#继续
我已经读了好几篇关于这方面的帖子,但都没法让它发挥作用

谁能帮我一个忙吗


提前谢谢你

我会检查路径/权限。。。从usr/local/bin上看,司机似乎运行良好。。。但是firefox可能不是从/usr/bin/firefox启动的
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from bs4 import BeautifulSoup
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium import webdriver
from datetime import datetime, date
from pyvirtualdisplay import Display

mystring = "Auslastung "

studio1 = "berlin-lichterfelde"
studio2 = "berlin-marzahn"
studio3 = "berlin-lichtenberg"
studio4 = "berlin-reinickendorf"
studio5 = "berlin-mahlsdorf"
studio6 = "berlin-wilmersdorf"
studio7 = "berlin-spandau-west"
studio8 = "berlin-spandau"

studios = studio1, studio2, studio3, studio4, studio5, studio6, studio7, studio8

def get_auslastung(studio):
        display = Display(visible=0, size=(1024, 768))
        display.start()
        firefoxpath = FirefoxBinary("/usr/bin/firefox")
        url = "https://www.mcfit.com/de/fitnessstudios/studiosuche/studiodetails/studio/"
        #cap = DesiredCapabilities().FIREFOX
        #cap ["marionette"] = False
        options = FirefoxOptions()
        options.add_argument("--headless")
        driver = webdriver.Firefox(options=options, firefox_binary=firefoxpath, executable_path="/usr/local/bin/geckodriver")
        driver.get(url + studio)

        html_content = driver.page_source
        soup = BeautifulSoup(html_content, "html.parser")

        auslastung = soup.find_all('div', {'class': 'sc-iJCRLp eDJvQP'})
        #print(auslastung)
        #auslastung = str(auslastung).split("<span>")[1]
        #print(auslastung)
        #auslastung = auslastung[:auslastung.rfind('</span>')]
        #print(auslastung)

        auslastung = str(auslastung).split("Auslastung ")[1]
        #print(auslastung)
        auslastung = auslastung[:auslastung.rfind('%')]
        print(auslastung)


        now = datetime.now()

        current_time = now.strftime("%H:%M:%S")
        #print("Current Time =", current_time)
        today = date.today()

        print(today)
        #print(studio)

        ergebnis = {'date': today, 'time': current_time, 'studio': studio, 'auslastung': auslastung}

        return ergebnis

        driver.close()
        display.stop()

import csv

with open('data.csv', mode='a') as file:
    fieldnames = ['date', 'time', 'studio', 'auslastung']
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    today_warning = date.today()

    for studio in studios:
        try:
            print(studio)
            writer.writerow(get_auslastung(studio))
        except Exception:
            print("!!!!RETRYING!!!!")
            writer.writerow(get_auslastung(studio))
            #print("Exception: Continue")
            #continue