Bedienungsanleitung

So, habe das Tool dahingehend erweitert, dass man nun HTML-formatierte Diff-Reports der Topics zweier URLs erstellen kann. Werde das nachher auf Github pushen, letzte Tests laufen noch.

Hier schonmal vorab der Report für MY21 vs. MY22:
diff-MY21-MY22.html

@Enso Hast du eine Idee, wie man an spezifische Manual-Versionen für P1.9/P2.1 etc. herankommt? Sind die irgendwo in der URL kodiert? Sonst wüsste ich nicht, wie man da einen Diff machen soll.

3 „Gefällt mir“

Und hier MY22 vs. MY23:
diff-MY22-MY23.html

2 „Gefällt mir“

Ach, Homelink ist im MY23 wieder enthalten?

Oder hat der Praktikant das neue Handbuch geschrieben? :wink:

Nein, ich glaube, man müsste während der aktuellen Laufzeit einer Version das Handbuch irgendwie downloaden und dann von der Download-Adresse vergleichen.

Habe gerade gesehen, dass im neuen Pilot Paket es jetzt eine „Fahrerassistenz bei Unfallgefahr mit Fahrzeugen im toten Winkel*“ gibt.

Dachte der Totwinkel Assistent war immer schon vorhanden…

https://www.polestar.com/de/manual/polestar-2/2023/article/Fahrerassistenz-bei-Unfallgefahr-mit-Fahrzeugen-im-toten-Winkel*/

sorry OT

Zeitabstand zum vorausfahrenden Fahrzeug einstellen (polestar.com)
Schön ist auch, dass auch im MY23-Handbuch immer noch die Assistenten-Ansicht dargestellt wird… :joy:

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 :slight_smile:

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 :smiley:
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….

1 „Gefällt mir“

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:

Weitere technische Diskussion ab sofort im neuen Support Thread hier.

danke schön! Endlich ein komplettes Handbuch