Télécharge les versions HTML et PDF des manuels d'entretien Ford à partir de PTS.
Vous avez acheté un abonnement de 72 heures aux manuels d'entretien Ford et souhaitez le sauvegarder de manière permanente ? Voici le dépôt pour vous.
Ces manuels sont protégés par les droits d'auteur de Ford, alors ne les partagez pas !
Pour que cela fonctionne, il faut actuellement une certaine connaissance des DevTools du navigateur. Si vous ne savez pas comment les utiliser, demandez à un ami qui le sait.
Ce script utilise playwright
, une bibliothèque d'interopérabilité de navigateur sans tête, pour enregistrer les documents sous forme de fichiers PDF plutôt que de HTML brut (de cette façon, les fichiers incluent des images).
Bien qu'il ait été vérifié que ce script fonctionne de manière native sous Windows (voir le numéro 6), il est recommandé de l'exécuter dans WSL. L'exécution dans WSL facilite grandement l'installation d'éléments tels que Git et Node.
WSL est un moyen d'exécuter Linux (Ubuntu est recommandé pour ce projet) en tandem avec Windows. C'est beaucoup plus rapide qu'une machine virtuelle mais utilise toujours le vrai noyau Linux. Apprenez-en plus et consultez les instructions d’installation ici.
corepack
)corepack enable
git clone https://github.com/iamtheyammer/fetch-ford-service-manuals.git
et entrez dans le répertoire du référentiel (probablement avec cd fetch-ford-service-manuals
)git pull
pour être à jour !git pull
ne dit pas Already up to date.
, exécutez les 2 étapes suivantes pour vous assurer que vos dépendances sont à jour.git stash
, git pull
, puis git stash apply
pour débloquer vos fichiers.yarn
pour télécharger les dépendancesyarn playwright-setup
pour télécharger et configurer PlaywrightCes instructions sont destinées aux navigateurs Chrome ou basés sur Chrome.
templates/
, faites une copie de cookieString.txt.template
et nommez- cookieString.txt
cookieString.txt
templates/
, faites une copie de params.json.template
et nommez- params.json
.Si votre véhicule a été fabriqué AVANT 2003, utilisez ces instructions.
Ce script nécessite certaines données sur votre voiture qui ne sont pas disponibles dans l'interface graphique PTS afin de récupérer le manuel correct.
https://www.fordservicecontent.com/Ford_Content/PublicationRuntimeRefreshPTS//publication/prod_1_3_372022/TreeAndCover/workshop/32/~WSLL/{some numbers here}
. Cela devrait ressembler à la demande sur cette photo.templates/params.json
et copiez/collez les informations de cette requête dans les valeurs du champ JSON .workshop
.Si votre véhicule a été fabriqué EN 2003 ou PLUS TARD, utilisez ces instructions.
templates/params.json
et modifiez uniquement :workshop.modelYear
à l'année de votre voiturepre_2003.alphabeticalIndexURL
vers l'URL que vous avez copiée à l'étape 2https://www.fordservicecontent.com/Ford_Content/PublicationRuntimeRefreshPTS//wiring/TableofContent
(il y a des paramètres de requête à la fin, c'est ok). Cela devrait ressembler à la demande sur cette photo.TableOfContent
, et non TableOfContent
s
environment
, bookType
et languageCode
dans .wiring
dans params.json
.WiringBookTitle
ou WiringBookCode
sont toujours manquants, vous devrez peut-être sélectionner un manuel de câblage. Après avoir sélectionné un manuel, vous le trouverez dans une autre demande adressée à https://www.fordtechservice.dealerconnection.com/wiring/TableOfContents
(avec quelques paramètres de requête à la fin) :booktitle
→ Titre du WiringBookTitle
book
→ WiringBookCode
params.json
du mieux que vous pouvez.params.json
.cookieString.txt.template
appelée cookieString.txt
si vous ne l'avez pas déjà fait.https://www.fordtechservice.dealerconnection.com/wiring/TableOfContents
(il y a des paramètres de requête à la fin, ce n'est pas grave).TableOfContent
s
, et non TableOfContent
cookieString.txt
.cookieString.txt
ne doit pas inclure Cookie:
, par exemple.)cookieString.txt
. Pour télécharger le manuel au format PDF, exécutez yarn start -c templates/params.json -s templates/cookieString.txt -o /directory/where/you/want/the/downloaded/manual/
. Vous devriez voir une sortie qui ressemble à ceci.
Avant que les manuels ne commencent à être téléchargés, le robot validera que vos cookies sont correctement configurés en tentant d'ouvrir le site PTS en arrière-plan. Bien que vous puissiez ignorer cette vérification, il y a de fortes chances que la sauter (avec --noCookieTest
) entraîne une erreur ultérieurement.
Assurez-vous que le répertoire du manuel téléchargé est vide : il contiendra de nombreux sous-dossiers.
Vous pouvez obtenir plus d'informations sur les paramètres en exécutant yarn start --help
. Notamment, --saveHTML
enregistrera les fichiers .html
ainsi que les fichiers .pdf
téléchargés par défaut, et --ignoreSaveErrors
continuera à télécharger les manuels si une erreur est rencontrée, en ignorant le fichier contenant une erreur.
Cela peut prendre un peu de temps ! Sur un ordinateur rapide doté d'une connexion Internet rapide et, plus important encore, d'un lecteur de disque rapide, plus de 15 minutes pour télécharger les manuels du Taurus 2005. Sois patient!
De plus, le dossier résultant est assez volumineux. Le dossier du Taurus 2005 faisait environ 300 Mo et le dossier F150 faisait quelques gigaoctets.
Vous avez des problèmes ? Voir Problèmes courants ou FAQ.
Ce robot télécharge l' intégralité du manuel d'atelier et tous les schémas de câblage du véhicule que vous configurez.
Les schémas de câblage seront dans outputpath/Wiring
. Il existe également un fichier toc.json
avec la table des matières des schémas de câblage.
Si vous disposez d'un dossier Wiring/Connector Views
, vous y disposez d'un fichier spécial : Connectors.csv
. Il vous indique où trouver chaque connecteur dans la voiture et où il se trouve dans les tableaux d'emplacement des composants. Ouvrez-le dans Excel ou Google Sheets pour voir les données. Voici un exemple rapide :
ID du connecteur | Connecteur | Emplacement du connecteur Vues Numéro de page | Référence de la grille | Emplacement dans le véhicule |
---|---|---|---|---|
C168A | Boîte de vitesses 10R80 (2,7 L) | 29 | F5 | Transmission |
C1840 | Solénoïde de contrôle de pression de ligne (LPC) | 34 | E8 | Transmission intérieure |
Wiring/Connector Location Views
) La structure des dossiers dans le répertoire de sortie imitera la structure sur PTS, donc si un fichier a un chemin comme 1: General Information -> 00: Service Information -> 100-00 General Information -> About this Manual
, il sera dans le dossier outputpath/1: General Information/00: Service Information/100-00 General Information/About this Manual.pdf
.
Le fichier cover.html
contient la couverture du livre et une table des matières présentée sous forme de puces. L'arborescence de ces puces correspond directement à la structure des fichiers du manuel téléchargé. Notez que certains caractères ne sont pas autorisés dans les noms de fichiers/dossiers, donc les caractères tels que les barres obliques, les deux-points, etc. sont remplacés par des tirets lors de l'enregistrement.
Le fichier toc.json
contient la table des matières lisible par ordinateur, dont le nom est mappé au « numéro de document », qui est utilisé pour récupérer le PDF.
La plupart des systèmes d'exploitation limitent les noms de fichiers à 255 octets (et non 255 caractères). Pour les noms de fichiers de plus de 200 caractères (ce qui est assez rare), le téléchargeur tronquera le nom, puis ajoutera (docID truncated)
à la fin.
Si vous rencontrez des difficultés pour trouver un document avec un nom long, recherchez-le dans toc.json
, où il s'agira d'une clé avec une valeur. Cette valeur est le docID
qui sera dans le nom du fichier.
Les véhicules de 2002 ou plus anciens ont une structure différente et plus difficile à récupérer dans le manuel, donc cet outil utilise uniquement l'index alphabétique. Cela signifie que le résultat est un peu différent ; vous obtiendrez simplement une structure plate avec toutes les pages du manuel dans le dossier de sortie que vous avez spécifié.
Vous pouvez facilement parcourir le manuel en ouvrant outputpath/AA_Table_Of_Contents.html
-- tous les liens fonctionnent à l'exception des lettres en haut.
Il existe également quelques fichiers spéciaux :
AA_Table_Of_Contents.html
est une table des matières spéciale et traitée où tous les liens fonctionnent ! Ouvrez-le dans votre navigateur pour parcourir le manuel.AAA_alphabeticalIndex.json
est un fichier JSON avec tous les liens dans l'index alphabétique. Ce n'est pas aussi utile que la table des matières, mais elle est là si vous en avez besoin. C'est le résultat du script de traitement.AAA_originalTableOfContents.html
est la table des matières originale, donc les liens ne fonctionnent pas. C'est là si vous en avez besoin. C'est le résultat du script de traitement. Ces fichiers portent le préfixe AAA
et apparaissent donc en haut de la liste des fichiers dans la plupart des navigateurs de fichiers.
Lorsque le script démarre, il tente de se connecter à PTS pour vérifier que vos cookies fonctionnent. Si cela échoue, vous ne pourrez peut-être pas récupérer les manuels.
Essayez de collecter à nouveau les cookies et assurez-vous que vous utilisez les bons. Si vous êtes sûr à 100 % que vos cookies sont corrects, vous pouvez ajouter --noCookieTest
à la commande.
Eh bien, il semble que votre abonnement ait expiré. Vous devrez le renouveler pour télécharger les manuels.
Cette vérification peut également être ignorée avec --noCookieTest
, mais sans abonnement, vous ne pourrez pas télécharger de manuels.
...
introuvable dans la chaîne de cookie. Cela peut affecter la fonctionnalité.Le script vérifie automatiquement votre fichier de cookies par rapport à une liste de cookies attendus. S'il ne trouve pas l'un des cookies attendus, il vous avertira (notez que le bot ne s'arrête pas si cela s'imprime).
Si vous voyez ce message et que le script commence à télécharger les manuels, laissez tomber : c'est juste un avertissement. Si vous voyez le message et que tout se télécharge correctement, veuillez ouvrir un problème GitHub afin que je puisse le résoudre pour les autres.
Si vous rencontrez des problèmes, essayez de collecter à nouveau vos cookies.
ERR_HTTP2_PROTOCOL_ERROR
Cela peut signifier soit que vos cookies ne sont pas valides, soit que Ford (en fait Akamai) a détecté que nous utilisons un navigateur sans tête (Playwright).
Tout d’abord, essayez de récupérer vos cookies et réessayez. Si vous rencontrez toujours des problèmes, contactez-nous.
ERR_BAD_RESPONSE
Cela signifie généralement que l'un des champs de votre fichier params.json
est incorrect. Vérifiez que tous les champs sont corrects et si vous rencontrez toujours des problèmes, ouvrez un ticket GitHub. (Cela arrive parfois lorsque Ford met à jour son site.)
Tous ceux que j'ai testés. Juste pour m'amuser, j'ai essayé :
Tout a fonctionné parfaitement !
Pour collecter à nouveau les cookies, suivez les instructions de cet ensemble d'instructions, en vous assurant :
Cookie:
partie de l'en-tête, si vous l'avez copiéRaw
en haut à droite Request Headers
;
entre la première pâte et la deuxième pâteSi vous rencontrez toujours des problèmes, contactez-nous.
Probablement! Nous avons connu du succès partout en Amérique du Nord, en Amérique du Sud, en Europe et en Australie.
Bien que le script soit en anglais (ce qui signifie que tous les messages imprimés seront en anglais), il téléchargera les manuels dans la langue spécifiée dans params.json
. Notez que Ford doit avoir le manuel disponible dans la langue demandée.
Pour télécharger des manuels dans une langue spécifique, modifiez votre langue PTS , collectez à nouveau tous les paramètres et relancez le téléchargement.
Alors que Ford continue de modifier la façon dont les manuels sont accessibles, ce projet nécessite une maintenance continue.
Si ce projet vous a été utile, vous pouvez soutenir ce projet sur les sponsors GitHub (cliquez sur le bouton "Parrainer" en haut de la page), m'offrir un café, ou simplement le partager !
Les contributions via des pull request sont également plus que bienvenues. Pour avoir les meilleures chances de fusionner vos PR, veuillez :
node_modules
)yarn format
avant de le soumettre pour une révision facileCe ne sont pas des exigences - je peux toujours vous aider avec ces choses - mais elles accélèrent le processus.
Je suis généralement heureux d'aider, mais je suis étudiant à l'université à temps plein et c'est un pur projet de passion. Je ne garde pas non plus d'abonnement PTS sous la main pour les tests (c'est assez cher à long terme !).
Pour obtenir de l'aide, ouvrez un ticket GitHub ou rejoignez le serveur Discord. Pour résoudre 99 % des problèmes, j'aurai besoin de l'erreur que vous obtenez avec vos fichiers params.json
et cookieString.txt
. Il existe une méthode sur le serveur Discord pour les envoyer en privé.
Je voulais avoir le manuel de ma voiture, et j'ai acheté l'abonnement dans l'espoir de télécharger un PDF, c'est donc exactement ce que j'ai fait !
Deux raisons. Premièrement, je ne veux pas de DDoS Ford (ils ont aussi Akamai devant cela, et une tonne de requêtes parallèles le déclencheraient absolument et nous bloqueraient). Deuxièmement, il était plus facile de coder de manière synchrone.