Lädt HTML- und PDF-Versionen von Ford-Servicehandbüchern von PTS herunter.
Sie haben ein 72-Stunden-Abonnement für die Servicehandbücher von Ford gekauft und möchten es dauerhaft speichern? Hier ist das Repo für Sie.
Diese Handbücher unterliegen dem Urheberrecht von Ford, also geben Sie sie nicht weiter!
Damit dies funktioniert, sind derzeit einige Kenntnisse der Browser-DevTools erforderlich. Wenn Sie nicht sicher sind, wie man sie verwendet, fragen Sie einen Freund, der das weiß.
Dieses Skript verwendet playwright
, eine Headless-Browser-Interop-Bibliothek, um Dokumente als PDF-Dateien statt als rohes HTML zu speichern (auf diese Weise enthalten Dateien Bilder).
Obwohl verifiziert wurde, dass dieses Skript nativ unter Windows funktioniert (siehe Problem Nr. 6), wird empfohlen, es in WSL auszuführen. Durch die Ausführung in WSL wird die Installation von Dingen wie Git und Node erheblich vereinfacht.
WSL ist eine Möglichkeit, Linux (für dieses Projekt wird Ubuntu empfohlen) zusammen mit Windows auszuführen. Es ist viel schneller als eine virtuelle Maschine, verwendet aber immer noch den echten Linux-Kernel. Erfahren Sie hier mehr und sehen Sie sich die Installationsanweisungen an.
corepack
)corepack enable
git clone https://github.com/iamtheyammer/fetch-ford-service-manuals.git
und geben Sie das Verzeichnis des Repositorys ein (wahrscheinlich mit cd fetch-ford-service-manuals
).git pull
aus, um auf den neuesten Stand zu kommen!git pull
nicht sagt, Already up to date.
, führen Sie die nächsten beiden Schritte aus, um sicherzustellen, dass Ihre Abhängigkeiten auf dem neuesten Stand sind.git stash
, git pull
und dann git stash apply
auszuführen, um den Stash Ihrer Dateien aufzuheben.yarn
aus, um Abhängigkeiten herunterzuladenyarn playwright-setup
aus, um Playwright herunterzuladen und einzurichtenDiese Anleitung ist für Chrome oder Chrome-basierte Browser gedacht.
templates/
eine Kopie von cookieString.txt.template
und nennen Sie sie cookieString.txt
cookieString.txt
templates/
eine Kopie von params.json.template
und nennen Sie sie params.json
.Wenn Ihr Fahrzeug VOR 2003 hergestellt wurde, befolgen Sie diese Anweisungen.
Dieses Skript benötigt einige Daten über Ihr Auto, die in der PTS-GUI nicht verfügbar sind, um das richtige Handbuch abzurufen.
https://www.fordservicecontent.com/Ford_Content/PublicationRuntimeRefreshPTS//publication/prod_1_3_372022/TreeAndCover/workshop/32/~WSLL/{some numbers here}
. Es sollte der Anfrage auf diesem Foto ähneln.templates/params.json
und kopieren Sie die Informationen aus dieser Anfrage und fügen Sie sie in die Werte des JSON-Felds .workshop
ein.Wenn Ihr Fahrzeug im Jahr 2003 oder später hergestellt wurde, befolgen Sie diese Anweisungen.
templates/params.json
und ändern Sie nur Folgendes:workshop.modelYear
auf das Baujahr Ihres Autospre_2003.alphabeticalIndexURL
zu der URL, die Sie in Schritt 2 kopiert habenhttps://www.fordservicecontent.com/Ford_Content/PublicationRuntimeRefreshPTS//wiring/TableofContent
(am Ende stehen Abfrageparameter, das ist in Ordnung). Es sollte der Anfrage auf diesem Foto ähneln.TableOfContent
, nicht TableOfContent
s
environment
, bookType
und languageCode
in .wiring
in params.json
.WiringBookTitle
oder WiringBookCode
noch fehlen, müssen Sie möglicherweise ein Verkabelungshandbuch auswählen. Nachdem Sie ein Handbuch ausgewählt haben, finden Sie diese in einer weiteren Anfrage an https://www.fordtechservice.dealerconnection.com/wiring/TableOfContents
(mit einigen Abfrageparametern am Ende):booktitle
→ WiringBookTitle
book
→ WiringBookCode
params.json
so gut wie möglich auszufüllen.params.json
.cookieString.txt.template
mit dem Namen cookieString.txt
, falls Sie dies noch nicht getan haben.https://www.fordtechservice.dealerconnection.com/wiring/TableOfContents
(am Ende stehen Abfrageparameter, das ist in Ordnung).TableOfContent
s
, nicht TableOfContent
cookieString.txt
ein.cookieString.txt
sollte beispielsweise Cookie:
nicht enthalten.)cookieString.txt
. Um das Handbuch als PDFs herunterzuladen, führen Sie yarn start -c templates/params.json -s templates/cookieString.txt -o /directory/where/you/want/the/downloaded/manual/
. Sie sollten eine Ausgabe sehen, die so aussieht.
Bevor mit dem Herunterladen der Handbücher begonnen wird, überprüft der Bot, ob Ihre Cookies korrekt eingerichtet sind, indem er versucht, die PTS-Site im Hintergrund zu öffnen. Sie können diese Prüfung zwar überspringen, es besteht jedoch eine gute Chance, dass das Überspringen (mit --noCookieTest
) später zu einem Fehler führt.
Stellen Sie sicher, dass das Verzeichnis für das heruntergeladene Handbuch leer ist – es wird viele Unterordner haben.
Sie können weitere Parameterinformationen erhalten, indem Sie yarn start --help
ausführen. Insbesondere speichert --saveHTML
.html
Dateien zusammen mit den standardmäßig heruntergeladenen .pdf
Dateien, und --ignoreSaveErrors
lädt weiterhin Handbücher herunter, wenn ein Fehler auftritt, und überspringt die Datei mit einem Fehler.
Es kann eine Weile dauern! Auf einem schnellen Computer mit einer schnellen Internetverbindung und, was noch wichtiger ist, einem schnellen Laufwerk dauert das Herunterladen der Handbücher für den 2005 Taurus über 15 Minuten. Sei geduldig!
Außerdem ist der resultierende Ordner ziemlich groß. Der Ordner für den 2005 Taurus war etwa 300 MB groß und der F150-Ordner war ein paar Gigabyte groß.
Haben Sie Probleme? Siehe Häufige Probleme oder FAQ.
Dieser Bot lädt das gesamte Werkstatthandbuch und alle Schaltpläne für das von Ihnen eingerichtete Fahrzeug herunter.
Verdrahtungspläne finden Sie im outputpath/Wiring
. Es gibt auch eine toc.json
Datei mit dem Inhaltsverzeichnis für die Schaltpläne.
Wenn Sie einen Ordner Wiring/Connector Views
haben, befindet sich dort eine spezielle Datei: Connectors.csv
. Es zeigt Ihnen, wo sich jeder Stecker im Auto befindet und wo er sich in den Komponentenpositionstabellen befindet. Öffnen Sie es in Excel oder Google Sheets, um die Daten anzuzeigen. Hier ist ein kurzes Beispiel:
Connector-ID | Stecker | Seitenzahl der Steckerpositionsansichten | Rasterreferenz | Standort im Fahrzeug |
---|---|---|---|---|
C168A | 10R80-Getriebe (2,7 l) | 29 | F5 | Übertragung |
C1840 | Magnetventil zur Leitungsdruckregelung (LPC). | 34 | E8 | Innengetriebe |
Wiring/Connector Location Views
) Die Ordnerstruktur im Ausgabeverzeichnis entspricht der Struktur auf PTS. Wenn eine Datei also einen Pfad wie 1: General Information -> 00: Service Information -> 100-00 General Information -> About this Manual
hat, befindet sie sich im Ordner outputpath/1: General Information/00: Service Information/100-00 General Information/About this Manual.pdf
.
Die Datei cover.html
enthält das Cover des Buchs und ein in Aufzählungspunkten gegliedertes Inhaltsverzeichnis. Der Baum dieser Aufzählungspunkte entspricht direkt der Dateistruktur des heruntergeladenen Handbuchs. Beachten Sie, dass einige Zeichen in Datei-/Ordnernamen nicht zulässig sind. Daher werden Zeichen wie Schrägstriche, Doppelpunkte usw. beim Speichern durch Bindestriche ersetzt.
Die toc.json
-Datei enthält das computerlesbare Inhaltsverzeichnis, wobei der Name der „Dokumentnummer“ zugeordnet ist, die zum Abrufen der PDF-Datei verwendet wird.
Die meisten Betriebssysteme beschränken Dateinamen auf 255 Byte (nicht 255 Zeichen). Bei Dateinamen mit mehr als 200 Zeichen (was ziemlich selten vorkommt) kürzt der Downloader den Namen und fügt dann (docID truncated)
am Ende hinzu.
Wenn Sie Probleme haben, ein Dokument mit einem langen Namen zu finden, suchen Sie in toc.json
danach, wo es sich um einen Schlüssel mit einem Wert handelt. Dieser Wert ist die docID
, die im Dateinamen enthalten sein wird.
Bei Fahrzeugen aus dem Jahr 2002 oder älter ist die Struktur im Handbuch anders und schwieriger zu finden, daher verwendet dieses Tool nur den alphabetischen Index. Das bedeutet, dass die Ausgabe etwas anders ist; Sie erhalten einfach eine flache Struktur mit allen Seiten des Handbuchs im von Ihnen angegebenen Ausgabeordner.
Sie können das Handbuch ganz einfach durchsuchen, indem Sie outputpath/AA_Table_Of_Contents.html
öffnen – alle Links funktionieren bis auf die Buchstaben oben.
Es gibt auch ein paar spezielle Dateien:
AA_Table_Of_Contents.html
ist ein spezielles, verarbeitetes Inhaltsverzeichnis, in dem alle Links funktionieren! Öffnen Sie es in Ihrem Browser, um im Handbuch zu navigieren.AAA_alphabeticalIndex.json
ist eine JSON-Datei mit allen Links im alphabetischen Index. Es ist nicht so nützlich wie das Inhaltsverzeichnis, aber es ist da, wenn Sie es brauchen. Es ist ein Ergebnis des Verarbeitungsskripts.AAA_originalTableOfContents.html
ist das ursprüngliche Inhaltsverzeichnis, daher funktionieren die Links nicht. Es ist da, wenn Sie es brauchen. Es ist ein Ergebnis des Verarbeitungsskripts. Diesen Dateien wird das Präfix AAA
vorangestellt, sodass sie in den meisten Dateibrowsern ganz oben in der Dateiliste angezeigt werden.
Wenn das Skript startet, versucht es, sich bei PTS anzumelden, um zu überprüfen, ob Ihre Cookies funktionieren. Wenn dies fehlschlägt, können Sie möglicherweise keine Handbücher abrufen.
Versuchen Sie, Cookies erneut zu sammeln und stellen Sie sicher, dass Sie die richtigen Cookies verwenden. Wenn Sie zu 100 % sicher sind, dass Ihre Cookies korrekt sind, können Sie --noCookieTest
zum Befehl hinzufügen.
Nun, es sieht so aus, als wäre Ihr Abonnement abgelaufen. Sie müssen es erneuern, um Handbücher herunterladen zu können.
Diese Prüfung kann auch mit --noCookieTest
übersprungen werden, aber ohne Abonnement können Sie keine Handbücher herunterladen.
...
nicht im Cookie-String gefunden. Dies kann die Funktionalität beeinträchtigen.Das Skript vergleicht Ihre Cookie-Datei automatisch mit einer Liste der erwarteten Cookies. Wenn eines der erwarteten Cookies nicht gefunden werden kann, werden Sie gewarnt (beachten Sie, dass der Bot nicht stoppt, wenn dies ausgedruckt wird).
Wenn Sie diese Meldung sehen und das Skript mit dem Herunterladen von Handbüchern beginnt, lassen Sie es los – es handelt sich lediglich um eine Warnung. Wenn Sie die Meldung sehen und alles problemlos heruntergeladen wird, öffnen Sie bitte ein GitHub-Problem, damit ich es für andere beheben kann.
Wenn Sie Probleme haben, versuchen Sie, Ihre Cookies erneut zu sammeln.
ERR_HTTP2_PROTOCOL_ERROR
Dies kann entweder bedeuten, dass Ihre Cookies ungültig sind oder dass Ford (eigentlich Akamai) erkannt hat, dass wir einen Headless-Browser (Playwright) verwenden.
Versuchen Sie zunächst, Ihre Cookies erneut zu sammeln, und versuchen Sie es erneut. Wenn Sie immer noch Probleme haben, wenden Sie sich an uns.
ERR_BAD_RESPONSE
Dies bedeutet normalerweise, dass eines der Felder in Ihrer params.json
-Datei falsch ist. Überprüfen Sie, ob alle Felder korrekt sind. Wenn weiterhin Probleme auftreten, öffnen Sie ein GitHub-Problem. (Dies passiert manchmal, wenn Ford seine Website aktualisiert.)
Alle, die ich getestet habe. Nur zum Spaß habe ich Folgendes versucht:
Alles hat einwandfrei funktioniert!
Um Cookies erneut zu sammeln, befolgen Sie die Anweisungen in dieser Anleitung und stellen Sie sicher, dass Sie:
Cookie:
Teil des Headers, falls Sie ihn kopiert habenRaw
-Schalter oben rechts in den Request Headers
;
hinzugefügt zwischen der ersten Paste und der zweiten PasteWenn Sie immer noch Probleme haben, wenden Sie sich an uns.
Wahrscheinlich! Wir waren in ganz Nordamerika, Südamerika, Europa und Australien erfolgreich.
Während das Skript auf Englisch ist (d. h. alle ausgedruckten Nachrichten werden auf Englisch sein), lädt es Handbücher in der in params.json
angegebenen Sprache herunter. Beachten Sie, dass Ford das Handbuch in der gewünschten Sprache verfügbar haben muss.
Um Handbücher in einer bestimmten Sprache herunterzuladen, ändern Sie Ihre PTS-Sprache , erfassen Sie alle Parameter erneut und führen Sie den Download erneut aus.
Da Ford die Art und Weise, wie auf Handbücher zugegriffen wird, ständig verändert, erfordert dieses Projekt eine kontinuierliche Wartung.
Wenn dieses Projekt für Sie hilfreich war, können Sie es auf GitHub-Sponsoren unterstützen (klicken Sie oben auf der Seite auf die Schaltfläche „Sponsor“), mir einen Kaffee spendieren oder es einfach teilen!
Auch Beiträge über Pull-Requests sind herzlich willkommen. Für die größtmögliche Chance, dass Ihre PR zusammengeführt wird, gehen Sie bitte wie folgt vor:
node_modules
-Ordner)yarn format
bevor Sie ihn zur einfachen Überprüfung einreichenDies sind keine Anforderungen – ich kann Ihnen dabei jederzeit helfen – aber sie beschleunigen den Prozess.
Im Allgemeinen helfe ich gerne, aber ich bin Vollzeitstudent und dies ist ein reines Leidenschaftsprojekt. Ich halte auch kein PTS-Abonnement zum Testen bereit (das ist auf lange Sicht ziemlich teuer!).
Wenn Sie Hilfe benötigen, öffnen Sie entweder ein GitHub-Problem oder treten Sie dem Discord-Server bei. Um bei 99 % der Probleme helfen zu können, benötige ich den Fehler, den Sie in Ihren params.json
und cookieString.txt
Dateien erhalten. Auf dem Discord-Server gibt es eine Methode, um sie privat zu senden.
Ich wollte das Handbuch für mein Auto haben und kaufte das Abonnement in der Hoffnung, ein PDF herunterzuladen, also habe ich genau das getan!
Zwei Gründe. Erstens möchte ich keinen DDoS-Angriff auf Ford ausführen (sie haben auch Akamai davor, und eine Menge paralleler Anfragen würden es auf jeden Fall auslösen und uns blockieren). Zweitens war es einfacher, synchron zu programmieren.