PTS からフォード サービス マニュアルの HTML 版と PDF 版をダウンロードします。
フォードのサービス マニュアルの 72 時間のサブスクリプションを購入しましたが、それを永久に保存したいですか?ここにそのレポがあります。
これらのマニュアルはフォードが著作権で保護しているため、共有しないでください。
現在、これを機能させるには、ブラウザー DevTools に関するある程度の知識が必要です。使い方がわからない場合は、詳しい友達に聞いてください。
このスクリプトは、ヘッドレス ブラウザー相互運用ライブラリであるplaywright
使用して、ドキュメントを生の HTML ではなく PDF ファイルとして保存します (この方法ではファイルに画像が含まれます)。
このスクリプトは Windows でネイティブに動作することが確認されていますが (問題 #6 を参照)、WSL で実行することをお勧めします。 WSL で実行すると、Git や Node などのインストールがはるかに簡単になります。
WSL は、Windows と並行して Linux (このプロジェクトには Ubuntu が推奨されます) を実行する方法です。仮想マシンよりもはるかに高速ですが、それでも実際の Linux カーネルが使用されます。詳細とインストール手順については、こちらをご覧ください。
corepack
を使用)corepack enable
実行するgit clone https://github.com/iamtheyammer/fetch-ford-service-manuals.git
を使用してこのリポジトリのクローンを作成し、リポジトリのディレクトリに入ります (おそらくcd fetch-ford-service-manuals
を使用します)。git pull
実行して最新の情報を取得してください。git pull
Already up to date.
と表示されない場合。 、次の 2 つの手順を実行して、依存関係が最新であることを確認します。git stash
、 git pull
を実行してからgit stash apply
実行して、ファイルのスタッシュを解除してください。yarn
を実行して依存関係をダウンロードするyarn playwright-setup
実行して、Playwright をダウンロードしてセットアップしますこれらの手順は、Chrome または Chrome ベースのブラウザを対象としています。
templates/
で、 cookieString.txt.template
のコピーを作成し、それにcookieString.txt
という名前を付けます。cookieString.txt
の内容をクリアします。templates/
で、 params.json.template
のコピーを作成し、 params.json
という名前を付けます。お使いの車両が 2003 年より前に製造された場合は、次の手順に従ってください。
このスクリプトでは、正しいマニュアルを取得するために、PTS GUI では利用できない車に関するデータが必要です。
https://www.fordservicecontent.com/Ford_Content/PublicationRuntimeRefreshPTS//publication/prod_1_3_372022/TreeAndCover/workshop/32/~WSLL/{some numbers here}
への 1 つの POST をフィルターします。この写真のリクエストと同じように見えるはずです。templates/params.json
を開き、そのリクエストの情報をコピーして JSON .workshop
フィールドの値に貼り付けます。あなたの車両が 2003 年以降に製造された場合は、次の手順に従ってください。
templates/params.json
を開いて、以下のみを変更します。workshop.modelYear
あなたの車の年に合わせてくださいpre_2003.alphabeticalIndexURL
手順 2 でコピーした URL に変更します。https://www.fordservicecontent.com/Ford_Content/PublicationRuntimeRefreshPTS//wiring/TableofContent
(最後にクエリ パラメータがありますが、問題ありません)。この写真のリクエストと同じように見えるはずです。TableOfContent
ではなく、 TableOfContent
ですs
environment
、 bookType
、およびlanguageCode
クエリ パラメータをparams.json
の.wiring
にコピーします。WiringBookTitle
またはWiringBookCode
がまだ見つからない場合は、配線マニュアルを選択する必要がある場合があります。マニュアルを選択すると、 https://www.fordtechservice.dealerconnection.com/wiring/TableOfContents
への別のリクエストでこれらが見つかります (最後にクエリ パラメータがいくつかあります)。booktitle
→ WiringBookTitle
book
→ WiringBookCode
params.json
に入力します。params.json
保存します。cookieString.txt.template
のコピーをまだ作成していない場合は、 cookieString.txt
という名前で作成します。https://www.fordtechservice.dealerconnection.com/wiring/TableOfContents
(最後にクエリ パラメータがありますが、問題ありません)。TableOfContent
ではなくTableOfContent
s
という複数形であることを確認してください。cookieString.txt
ファイルに貼り付けます。cookieString.txt
にはCookie:
を含めないでください)。cookieString.txt
保存します。マニュアルを PDF としてダウンロードするには、 yarn start -c templates/params.json -s templates/cookieString.txt -o /directory/where/you/want/the/downloaded/manual/
実行します。次のような出力が表示されるはずです。
マニュアルのダウンロードを開始する前に、ボットはバックグラウンドで PTS サイトを開こうとすることで、Cookie が正しく設定されていることを検証します。このチェックをスキップすることもできますが、( --noCookieTest
を使用して) スキップすると、後でエラーが発生する可能性が高くなります。
ダウンロードしたマニュアルのディレクトリが空であることを確認してください。ディレクトリには多数のサブフォルダが存在します。
yarn start --help
実行すると、詳細なパラメータ情報を取得できます。特に、 --saveHTML
、デフォルトでダウンロードされる.pdf
ファイルとともに.html
ファイルを保存します。また、 --ignoreSaveErrors
、エラーが発生した場合、エラーのあるファイルをスキップしてマニュアルのダウンロードを続行します。
少し時間がかかる場合があります。高速インターネット接続、そしてさらに重要なことに、高速ディスク ドライブを備えた高速コンピュータでは、2005 Taurus のマニュアルをダウンロードするのに 15 分以上かかります。我慢して!
また、結果として得られるフォルダーはかなり大きくなります。 2005 Taurus のフォルダは約 300 MB で、F150 のフォルダは数 GB でした。
問題がありますか? 「一般的な問題」または「よくある質問」を参照してください。
このボットは、ワークショップマニュアル全体と、セットアップした車両のすべての配線図をダウンロードします。
配線図はoutputpath/Wiring
にあります。配線図の目次を含むtoc.json
ファイルもあります。
Wiring/Connector Views
フォルダがある場合は、そこに特別なファイルConnectors.csv
があります。これにより、車内のすべてのコネクタの場所と、コンポーネント位置図のどこにあるかがわかります。 Excel または Google スプレッドシートで開いてデータを確認します。簡単な例を次に示します。
コネクタID | コネクタ | コネクタの位置ビュー ページ番号 | グリッドリファレンス | 車内の位置 |
---|---|---|---|---|
C168A | 10R80 トランスミッション(2.7L) | 29 | F5 | 伝染 ; 感染 |
C1840 | ライン圧力制御 (LPC) ソレノイド | 34 | E8 | インサイドトランスミッション |
Wiring/Connector Location Views
)出力ディレクトリのフォルダー構造は PTS 上の構造を模倣するため、ファイルのパスが1: General Information -> 00: Service Information -> 100-00 General Information -> About this Manual
場合、ファイルはフォルダoutputpath/1: General Information/00: Service Information/100-00 General Information/About this Manual.pdf
。
cover.html
ファイルには、本の表紙と箇条書きでレイアウトされた目次が含まれています。これらの箇条書きのツリーは、ダウンロードしたマニュアルのファイル構造に直接対応しています。一部の文字はファイル/フォルダー名に使用できないため、スラッシュ、コロンなどの文字は保存時にダッシュに置き換えられることに注意してください。
toc.json
ファイルには、コンピューターが読み取り可能な目次が含まれており、その名前は PDF を取得するために使用される「文書番号」にマップされています。
ほとんどのオペレーティング システムでは、ファイル名は 255 バイト (255 文字ではありません) に制限されています。ファイル名が 200 文字を超える場合 (これはかなりまれです)、ダウンローダーは名前を切り詰めてから、末尾に(docID truncated)
を追加します。
長い名前のドキュメントを見つけるのが難しい場合は、 toc.json
でドキュメントを検索してください。値を持つキーが表示されます。その値はファイル名に含まれるdocID
です。
2002 年以前の車両では、マニュアルの構造が異なり、取得するのが困難であるため、このツールではアルファベット順のインデックスのみが使用されます。これは、出力が少し異なることを意味します。指定した出力フォルダーにマニュアルのすべてのページを含むフラットな構造が得られます。
マニュアルは、 outputpath/AA_Table_Of_Contents.html
を開くと簡単に参照できます。上部の文字を除き、すべてのリンクが機能します。
いくつかの特殊なファイルもあります。
AA_Table_Of_Contents.html
は、すべてのリンクが機能する特別な処理済みの目次です。ブラウザで開いてマニュアルを参照してください。AAA_alphabeticalIndex.json
は、アルファベット順のインデックス内のすべてのリンクを含む JSON ファイルです。目次ほど便利ではありませんが、必要な場合に役立ちます。これはスクリプトの処理の結果です。AAA_originalTableOfContents.html
はオリジナルの目次なので、リンクは機能しません。必要であればそこにあります。これはスクリプトの処理の結果です。これらのファイルにはAAA
というプレフィックスが付いているため、ほとんどのファイル ブラウザでファイル リストの先頭に表示されます。
スクリプトが開始されると、Cookie が機能していることを確認するために PTS へのサインインが試行されます。これに失敗すると、マニュアルを取得できない可能性があります。
Cookie を再収集して、正しいものを使用していることを確認してください。 Cookie が正しいと 100% 確信している場合は、コマンドに--noCookieTest
を追加できます。
どうやら、サブスクリプションの有効期限が切れたようです。マニュアルをダウンロードするには更新する必要があります。
このチェックは--noCookieTest
を使用してスキップすることもできますが、サブスクリプションがなければマニュアルをダウンロードできません。
...
Cookie 文字列に見つかりません。これは機能に影響を与える可能性があります。スクリプトは、予期される Cookie のリストと照合して Cookie ファイルを自動チェックします。予期した Cookie が見つからない場合は、警告が表示されます (これが出力されてもボットは停止しないことに注意してください)。
このメッセージが表示され、スクリプトがマニュアルのダウンロードを開始した場合は、そのままにしてください。これは単なる警告です。メッセージが表示され、すべてが正常にダウンロードされた場合は、GitHub の問題を開いて他の人のために修正してください。
問題が発生した場合は、Cookie を再収集してみてください。
ERR_HTTP2_PROTOCOL_ERROR
これは、Cookie が無効であるか、Ford (実際には Akamai) がヘッドレス ブラウザ (Playwright) を使用していることを検出したことを意味する可能性があります。
まず、Cookie を再収集して再試行してください。まだ問題がある場合は、お問い合わせください。
ERR_BAD_RESPONSE
これは通常、 params.json
ファイル内のフィールドの 1 つが正しくないことを意味します。すべてのフィールドが正しいことを確認し、まだ問題がある場合は、GitHub の問題を開きます。 (これは、Ford がサイトを更新するときに発生することがあります。)
すべて私がテストしたものです。楽しみのために、私は試してみました:
すべて問題なく動作しました!
Cookie を再収集するには、この一連の手順に従って、次のことを確認してください。
Cookie:
部分をコピーした場合は削除します。Request Headers
の右上にあるRaw
トグルを有効にします;
1回目のペーストと2回目のペーストの間それでも問題が解決しない場合は、ご連絡ください。
おそらく!当社は北米、南米、ヨーロッパ、オーストラリア全域で成功を収めてきました。
スクリプトは英語ですが (つまり、出力されるメッセージはすべて英語になります)、 params.json
で指定された言語でマニュアルをダウンロードします。フォードは、要求された言語で利用可能なマニュアルを用意している必要があることに注意してください。
特定の言語でマニュアルをダウンロードするには、 PTS 言語を変更し、すべてのパラメータを再収集して、ダウンロードを再度実行します。
Ford はマニュアルへのアクセス方法を変更し続けているため、このプロジェクトには継続的なメンテナンスが必要です。
このプロジェクトが役に立った場合は、GitHub スポンサー (ページ上部の「スポンサー」ボタンをクリック) でこのプロジェクトをサポートしたり、コーヒーを買ってきてもらったり、単に共有したりしていただけます。
プルリクエストによる貢献も大歓迎です。 PR が統合される可能性を最も高くするには、次のことを行ってください。
node_modules
フォルダーなし)yarn format
でコードをフォーマットしてくださいこれらは要件ではありません。これらについてはいつでもお手伝いできます。しかし、これらによりプロセスが迅速化されます。
基本的に喜んでお手伝いさせていただきますが、私はフルタイムの大学生であり、これは純粋に情熱を注ぐプロジェクトです。また、テスト用に PTS サブスクリプションを手元に置いておくこともありません (長期的にはかなり高価です!)。
サポートが必要な場合は、GitHub の問題を開くか、Discord サーバーに参加してください。問題の 99% を解決するには、 params.json
とcookieString.txt
ファイルで発生しているエラーが必要です。 Discord サーバーにはプライベートに送信する方法があります。
車のマニュアルが欲しかったので、PDF をダウンロードしたいと思ってサブスクリプションを購入しました。まさにそのとおりでした。
理由は 2 つあります。まず、私は Ford を DDoS したくありません (彼らは、この前に Akamai も擁しており、大量の並行リクエストがそれを引き起こし、私たちをブロックしてしまうことは間違いありません)。次に、同期コーディングが簡単になりました。