Zeitabstand zum vorausfahrenden Fahrzeug einstellen (polestar.com)
Schön ist auch, dass auch im MY23-Handbuch immer noch die Assistenten-Ansicht dargestellt wird…
Ja, ist im MY2021 vorhanden, aber da ist ja auch das Pluspaket enthalten.
In der Doku(MY22) gibt es die Sektion nicht, deshalb wurde ich stutzig
Vielen Dank für das Tool. Ich bekomme es nicht zum Laufen, wahrscheinlich fehlen ein paar Abhängigkeiten oder sonstige Voraussetzungen. Habe auf die Schnelle einen Ubuntu Server unter Proxmox dafür aufgesetzt. Kenne mich nicht mit virtuellen Umgebungen in Python aus. Hast du vielleicht eine gute Anleitung, wie ich das System gut vorbereiten kann, damit dein Projekt dann genutzt werden kann?
ab hier hakts:
mkdir .venv && python python3 -m venv .venv
Ergebnis:
mkdir: cannot create directory '.venv': File exists
Nach dem Klonen des Repos gibt es bereits ein Directory polestar-manual/.venv
Ansonsten habe ich mal das PDF aus deiner Dropbox angeschaut. Was mir aufgefallen ist, dass Seiten,. die eine horizontale Scrollbar haben, nicht vollständig abgebildet sind. ich denke aber, das ist nicht lösbar, jedenfalls nicht trivial. Daher der Hinweis, dass manche Seiten evtl. nicht vollständig sichtbar sind. Beispielsweise Seite 276 im o.g. PDF…
Hi, im Repo ist das Verzeichnis .venv
nicht vorhanden, insofern dürfte es nach dem Klonen nicht von selbst erscheinen. Ich vermute eher, dass du die Zeile doppelt ausgeführt hast. Es sind eigentlich zwei Kommandos in einem, die durch &&
verknüpft sind: Erstelle Verzeichnis .venv
und falls das erfolgreich war, erstelle darin eine virtuelle Umgebung. Allerdings sehe ich gerade, dass da noch ein Fehler drin ist, der vermutlich hier das Problem darstellt, habe ich beim Tippen wohl übersehen. Es muss heißen:
mkdir .venv && python3 -m venv .venv
Es war also das eine python
zu viel, sorry.
Was das mit den Scrollbalken betrifft: Korrekt, hatte ich auch schon bemerkt. Kann man bestimmt irgendwie umgehen. Ich vermute, dazu müsste man per Javascript prüfen, ob es einen Scrollbalken gibt und dann dynamisch den Content-Container und die Page vergrößern. Allerdings war mir der Aufwand zu hoch, mich für die paar Seiten da auch noch reinzufuchsen. Denn ehrlich gesagt ist dieses Projekt mein erster Ausflug in die Web-Scraping-Welt: Hab vorher noch nie JS Code geschrieben, HTML Elemente modifiziert, mit Selenium gearbeitet oder PDFs programmatisch editiert. Kenne mich nur in Python ganz gut aus, der Rest hat sich spontan so ergeben
Also ich find das echt cool, was du gemacht hast. Auch wenn jetzt das PDF an ein paar Stellen nicht optimal ist, für mich reichts völlig. Man kann ja immer noch online nachschaun, wenn man den vollen Inhalt dann haben möchte. Den allergrößten Teil kann ich so in Ruhe offline lesen, das ist die Hauptsache und das eigentliche Ziel.
Ich bin weitergekommen, danke für deinen Tipp. Nur beim Ausführen des Skriptes gibt es dann folgenden Fehler:
(.venv) root@Ubuntu20:~/polestar-manual# python main.py --chromium-binary 982481/chrome-linux/chrome
Traceback (most recent call last):
File "main.py", line 5, in <module>
import pshtml2pdf
File "/root/polestar-manual/pshtml2pdf.py", line 15, in <module>
from webdriver_manager.utils import ChromeType
ModuleNotFoundError: No module named 'webdriver_manager.utils'
Ich habe Chromium wie beschrieben standalone entpackt, der Pfad (relativ) stimmt ebenso.
Beim Installieren der requirements wurde das webdriver_manager paket installiert:
Successfully installed PyPDF2-2.0.0 PySocks-1.7.1 async-generator-1.10 attrs-21.4.0 certifi-2022.5.18.1 cffi-1.15.0 charset-normalizer-2.0.12 cryptography-37.0.2 h11-0.13.0 idna-3.3 outcome-1.1.0 pyOpenSSL-22.0.0 pycparser-2.21 python-dotenv-0.20.0 requests-2.27.1 selenium-4.2.0 sniffio-1.2.0 sortedcontainers-2.4.0 trio-0.20.0 trio-websocket-0.9.2 typing-extensions-4.2.0 urllib3-1.26.9 webdriver-manager-3.7.0 wsproto-1.1.0
hast du eine Idee? Ich kann mir da leider nicht selber helfen, weil ich davon zu wenig Ahnung habe. Ich bräuchte sozusagen einen Hinweis, der mich auf die Fährte bringt…
Habe mir das angeschaut, offenbar hat sich mit dem letzten Versionsupdate im webdriver-manager
ein kleines bisschen im Interface geändert. Habe den Code gefixed und die requirements.txt
auf die aktuelle Version gepinnt. So sollte es auch in Zukunft weiter funktionieren. Bitte probier es nochmal.
Ich verstehe hier leider nur Bahnhof
Gibt es für „Nicht-IT-ler“ auch irgendwie eine Möglichkeit, die Bedienungsanleitung als PDF herunterzuladen?
Guckst du weiter oben. Christian hat ein paar Exemplare in seiner Dropbox zur Verfügung gestellt….
Ah OK, Danke, jetzt hats geklappt.
Ich hatte da schon mal draufgeklickt aber halt nur den obersten Link geöffnet.
Ich habe den Linux Container sicherheitshalber nochmal neu aufgesetzt um eine frische Umgebung zu haben und auch sicher das aktuelleste Repos zu haben. Habe mal Ubuntu Server 22 genommen.
Es gibt immer noch Fehler nach dem Ausführen des skriptes:
(.venv) root@ubuntu22:~/polestar-manual# python main.py --chromium-binary 982481/chrome-linux/chrome
[WDM] - ====== WebDriver manager ======
[WDM] - Could not get version for chromium. Is chromium installed?
[WDM] - Get LATEST chromedriver version for None chromium
[WDM] - There is no [linux64] chromedriver for browser None in cache
[WDM] - About to download new driver from https://chromedriver.storage.googleapis.com/102.0.5005.61/chromedriver_linux64.zip
[WDM] - Driver has been saved in cache [/root/.wdm/drivers/chromedriver/linux64/102.0.5005.61]
Traceback (most recent call last):
File "/root/polestar-manual/main.py", line 37, in <module>
pshtml2pdf.fetch_manual(args.url, workdir, args.chromium_binary)
File "/root/polestar-manual/pshtml2pdf.py", line 253, in fetch_manual
driver = setup_driver(tocurl, chrome_binary=chrome_binary)
File "/root/polestar-manual/pshtml2pdf.py", line 39, in setup_driver
driver = webdriver.Chrome(service=driver_service, options=driver_options)
File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py", line 70, in __init__
super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py", line 89, in __init__
self.service.start()
File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 98, in start
self.assert_process_still_running()
File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 110, in assert_process_still_running
raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: Service /root/.wdm/drivers/chromedriver/linux64/102.0.5005.61/chromedriver unexpectedly exited. Status code was: 127
hmm… I have no idea…
Danke für’s Testen, ich kann den Fehler hier reproduzieren und habe schnell eine Lösung gebaut. Sollte jetzt gehen, habe es gerade frisch ausprobiert.
leider immer noch im Prinzip der gleiche Fehler. Hab den LXC nochmals neu gebaut und alles neu eingerichtet. Sollen wir das evtl. außerhalb dieses Forums weiter „debuggen“?
Es muss ja irgendetwas mit der chromium binary zu tun haben. Ich halte mich der Einfachheit exakt an deine Anleitung im GitHub und lade die standalone version so runter wie in deinem Beispiel und entpacke es entsprechend.
Hier nochmal der Output der CLI:
(.venv) root@ubuntu22:~/polestar-manual# python main.py --chromium-binary 982481/chrome-linux/chrome
[WDM] - ====== WebDriver manager ======
[WDM] - There is no [linux64] chromedriver for browser in cache
[WDM] - About to download new driver from https://chromedriver.storage.googleapis.com/101.0.4951.41/chromedriver_linux64.zip
[WDM] - Driver has been saved in cache [/root/.wdm/drivers/chromedriver/linux64/101.0.4951.41]
Traceback (most recent call last):
File "/root/polestar-manual/main.py", line 37, in <module>
pshtml2pdf.fetch_manual(args.url, workdir, args.chromium_binary)
File "/root/polestar-manual/pshtml2pdf.py", line 254, in fetch_manual
driver = setup_driver(tocurl, chrome_binary=chrome_binary)
File "/root/polestar-manual/pshtml2pdf.py", line 40, in setup_driver
driver = webdriver.Chrome(service=driver_service, options=driver_options)
File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py", line 70, in __init__
super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py", line 89, in __init__
self.service.start()
File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 98, in start
self.assert_process_still_running()
File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/common/service.py", line 110, in assert_process_still_running
raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: Service /root/.wdm/drivers/chromedriver/linux64/101.0.4951.41/chromedriver unexpectedly exited. Status code was: 127
So sieht das filesystem aus:
danke schön! Endlich ein komplettes Handbuch