ดาวน์โหลดคู่มือการบริการของ Ford เวอร์ชัน HTML และ PDF จาก PTS
ซื้อการสมัครสมาชิกคู่มือการบริการของ Ford เป็นเวลา 72 ชั่วโมง และต้องการบันทึกไว้อย่างถาวรหรือไม่ นี่คือ repo สำหรับคุณ
คู่มือเหล่านี้เป็นลิขสิทธิ์ของ Ford ดังนั้นอย่าแชร์!
ในปัจจุบันการทำงานนี้ต้องอาศัยความรู้เกี่ยวกับ DevTools ของเบราว์เซอร์ หากคุณไม่แน่ใจว่าจะใช้มันอย่างไร ให้ถามเพื่อนที่ใช้
สคริปต์นี้ใช้ playwright
ซึ่งเป็นไลบรารีการทำงานร่วมกันของเบราว์เซอร์แบบ headless เพื่อบันทึกเอกสารเป็นไฟล์ PDF แทนที่จะเป็น HTML แบบดิบ (วิธีนี้ไฟล์จะรวมรูปภาพ)
แม้ว่าสคริปต์นี้ได้รับการยืนยันแล้วว่าทำงานบน Windows ได้ (ดูปัญหา #6) แต่ขอแนะนำให้เรียกใช้ใน WSL การรันใน WSL ทำให้การติดตั้งสิ่งต่าง ๆ เช่น Git และ Node ง่ายขึ้นมาก
WSL เป็นวิธีการรัน Linux (แนะนำให้ใช้ Ubuntu สำหรับโปรเจ็กต์นี้) ควบคู่กับ Windows มันเร็วกว่าเครื่องเสมือนมาก แต่ยังคงใช้เคอร์เนล 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}
ควรมีลักษณะคล้ายกับคำขอในรูปภาพนี้templates/params.json
และคัดลอก/วางข้อมูลจากคำขอนั้นลงในค่าของช่อง JSON .workshop
หากรถของคุณผลิตในปี 2003 หรือหลังจากนั้น ให้ใช้คำแนะนำเหล่านี้
templates/params.json
และเปลี่ยนเฉพาะ:workshop.modelYear
ปีรถของคุณpre_2003.alphabeticalIndexURL
ไปยัง URL ที่คุณคัดลอกในขั้นตอนที่ 2https://www.fordservicecontent.com/Ford_Content/PublicationRuntimeRefreshPTS//wiring/TableofContent
(มีพารามิเตอร์การสืบค้นต่อท้าย ไม่เป็นไร) ควรมีลักษณะคล้ายกับคำขอในรูปภาพนี้TableOfContent
ไม่ใช่ TableOfContent
s
environment
, bookType
และ languageCode
ลงใน .wiring
ใน params.json
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
s
ไม่ใช่ TableOfContent
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 ในเบื้องหลัง แม้ว่าคุณ จะสามารถ ข้ามการตรวจสอบนี้ได้ แต่ก็มีโอกาสที่ดีที่การข้ามการตรวจสอบ (ด้วย --noCookieTest
) จะส่งผลให้เกิดข้อผิดพลาดในภายหลัง
ตรวจสอบให้แน่ใจว่าไดเร็กทอรีสำหรับคู่มือที่ดาวน์โหลดนั้นว่างเปล่า เนื่องจากจะมีโฟลเดอร์ย่อยจำนวนมาก
คุณสามารถรับข้อมูลพารามิเตอร์เพิ่มเติมได้โดยการรัน yarn start --help
โดยเฉพาะอย่างยิ่ง --saveHTML
จะบันทึกไฟล์ .html
พร้อมกับไฟล์ .pdf
ที่ดาวน์โหลดตามค่าเริ่มต้น และ --ignoreSaveErrors
จะดำเนินการดาวน์โหลดคู่มือต่อไปหากพบข้อผิดพลาด โดยข้ามไฟล์ที่มีข้อผิดพลาด
อาจใช้เวลาสักครู่! บนคอมพิวเตอร์ที่รวดเร็วพร้อมการเชื่อมต่ออินเทอร์เน็ตที่รวดเร็ว และที่สำคัญกว่านั้นคือดิสก์ไดรฟ์ที่รวดเร็ว ใช้เวลามากกว่า 15 นาทีในการดาวน์โหลดคู่มือสำหรับราศีพฤษภปี 2005 อดทน!
นอกจากนี้โฟลเดอร์ที่ได้ก็ค่อนข้างใหญ่เช่นกัน โฟลเดอร์สำหรับ Taurus ปี 2005 มีขนาดประมาณ 300mb และโฟลเดอร์ F150 มีขนาดสองสามกิกะไบต์
มีปัญหาใช่ไหม? ดูปัญหาทั่วไปหรือคำถามที่พบบ่อย
บอทนี้จะดาวน์โหลดคู่มือศูนย์บริการ ทั้งหมด และแผนผังสายไฟ ทั้งหมด สำหรับรถที่คุณตั้งค่า
แผนภาพการเดินสายไฟจะอยู่ใน outputpath/Wiring
นอกจากนี้ยังมีไฟล์ toc.json
พร้อมสารบัญสำหรับไดอะแกรมการเดินสาย
หากคุณมีโฟลเดอร์ Wiring/Connector Views
คุณจะมีไฟล์พิเศษอยู่ในนั้น: Connectors.csv
โดยจะบอกคุณว่าจะหาขั้วต่อทุกตัวในรถได้ที่ไหน และอยู่ที่ไหนในแผนภูมิตำแหน่งส่วนประกอบ เปิดใน Excel หรือ Google ชีตเพื่อดูข้อมูล นี่เป็นตัวอย่างสั้นๆ:
รหัสตัวเชื่อมต่อ | ตัวเชื่อมต่อ | หมายเลขหน้ามุมมองตำแหน่งตัวเชื่อมต่อ | การอ้างอิงตาราง | ตำแหน่งในยานพาหนะ |
---|---|---|---|---|
C168A | เกียร์ 10R80 (2.7L) | 29 | F5 | การแพร่เชื้อ |
ค1840 | โซลินอยด์ควบคุมแรงดันสาย (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
.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
ดังนั้นจึงปรากฏที่ด้านบนของรายการไฟล์ในเบราว์เซอร์ไฟล์ส่วนใหญ่
เมื่อสคริปต์เริ่มทำงาน สคริปต์จะพยายามลงชื่อเข้าใช้ PTS เพื่อตรวจสอบว่าคุกกี้ของคุณทำงาน หากไม่สำเร็จ คุณอาจไม่สามารถดึงข้อมูลคู่มือได้
พยายามรวบรวมคุกกี้อีกครั้งและตรวจสอบให้แน่ใจว่าคุณใช้คุกกี้ที่ถูกต้อง หากคุณแน่ใจ 100% ว่าคุกกี้ของคุณถูกต้อง คุณสามารถเพิ่ม --noCookieTest
ในคำสั่งได้
ดูเหมือนว่าการสมัครของคุณหมดอายุแล้ว คุณจะต้องต่ออายุเพื่อดาวน์โหลดคู่มือ
คุณสามารถข้ามการตรวจสอบนี้ได้ด้วย --noCookieTest
แต่หากไม่มีการสมัครสมาชิก คุณจะไม่สามารถดาวน์โหลดคู่มือได้
...
ไม่พบในสตริงคุกกี้ ซึ่งอาจส่งผลต่อฟังก์ชันการทำงานสคริปต์จะตรวจสอบไฟล์คุกกี้ของคุณโดยอัตโนมัติกับรายการคุกกี้ที่คาดหวัง หากไม่พบคุกกี้ที่คาดหวัง ระบบจะเตือนคุณ (โปรดทราบว่าบอทจะไม่หยุดหากพิมพ์ออกมา)
หากคุณเห็นข้อความนี้และสคริปต์เริ่มดาวน์โหลดคู่มือ ให้ปล่อยมันไป นั่นเป็นเพียงคำเตือนเท่านั้น หากคุณเห็นข้อความและทุกอย่างดาวน์โหลดได้ตามปกติ โปรดเปิดปัญหา GitHub เพื่อให้ฉันแก้ไขปัญหาให้ผู้อื่นได้
หากคุณประสบปัญหา ให้ลองรวบรวมคุกกี้ของคุณใหม่
ERR_HTTP2_PROTOCOL_ERROR
ซึ่งอาจหมายความว่าคุกกี้ของคุณไม่ถูกต้องหรือ Ford (จริงๆ แล้วคือ Akamai) ตรวจพบว่าเราใช้เบราว์เซอร์แบบไม่มีส่วนหัว (นักเขียนบทละคร)
ขั้นแรก ลองรวบรวมคุกกี้ของคุณใหม่แล้วลองอีกครั้ง หากคุณยังคงประสบปัญหา โปรดติดต่อ
ERR_BAD_RESPONSE
ซึ่งมักจะหมายความว่าช่องใดช่องหนึ่งในไฟล์ params.json
ของคุณไม่ถูกต้อง ตรวจสอบว่าช่องทั้งหมดถูกต้อง และหากคุณยังคงประสบปัญหาอยู่ ให้เปิดปัญหา GitHub (สิ่งนี้บางครั้งเกิดขึ้นเมื่อ Ford อัปเดตไซต์ของตน)
ทั้งหมดที่ฉันได้ทดสอบ เพื่อความสนุกสนานฉันลอง:
ทั้งหมดทำงานได้อย่างไร้ที่ติ!
หากต้องการรวบรวมคุกกี้ใหม่ ให้ทำตามคำแนะนำในชุดคำแนะนำนี้ โดยต้องแน่ใจว่าคุณ:
Cookie:
ส่วนหนึ่งของส่วนหัว หากคุณคัดลอกไว้Raw
ที่มุมขวาบนของ Request Headers
;
ระหว่างการวางครั้งแรกและการวางที่สองหากคุณยังคงประสบปัญหา โปรดติดต่อ
อาจจะ! เราประสบความสำเร็จทั่วทั้งอเมริกาเหนือ อเมริกาใต้ ยุโรป และออสเตรเลีย
แม้ว่าสคริปต์จะเป็นภาษาอังกฤษ (หมายถึงข้อความทั้งหมดที่พิมพ์ออกมาจะเป็นภาษาอังกฤษ) แต่สคริปต์จะดาวน์โหลดคู่มือในภาษาที่ระบุใน params.json
โปรดทราบว่าฟอร์ดจะต้องมีคู่มือในภาษาที่ร้องขอ
หากต้องการดาวน์โหลดคู่มือในภาษาใดภาษาหนึ่ง ให้เปลี่ยนภาษา PTS รวบรวมพารามิเตอร์ ทั้งหมด ใหม่ และทำการดาวน์โหลดอีกครั้ง
เนื่องจากฟอร์ดเปลี่ยนแปลงวิธีการเข้าถึงคู่มืออย่างต่อเนื่อง โปรเจ็กต์นี้จึงต้องได้รับการบำรุงรักษาอย่างต่อเนื่อง
หากโครงการนี้เป็นประโยชน์กับคุณ คุณสามารถสนับสนุนโครงการนี้ได้จากผู้สนับสนุน GitHub (คลิกปุ่ม "สนับสนุน" ที่ด้านบนของหน้า) ซื้อกาแฟให้ฉัน หรือเพียงแค่แบ่งปัน!
การบริจาคผ่านคำขอดึงก็ยินดีเป็นอย่างยิ่ง เพื่อโอกาสสูงสุดในการรวม PR ของคุณเข้าด้วยกัน โปรด:
node_modules
)yarn format
ก่อนส่งเพื่อให้ตรวจสอบได้ง่ายสิ่งเหล่านี้ไม่ใช่ข้อกำหนด ฉันสามารถช่วยคุณในเรื่องเหล่านี้ได้ตลอดเวลา แต่จะทำให้กระบวนการเร็วขึ้น
โดยทั่วไปฉันยินดีให้ความช่วยเหลือ แต่ฉันเป็นนักศึกษามหาวิทยาลัยเต็มเวลา และนี่เป็นโครงการที่มีความมุ่งมั่นตั้งใจอย่างแท้จริง ฉันยังไม่มีการสมัครสมาชิก PTS ไว้สำหรับการทดสอบ (ซึ่งค่อนข้างแพงในระยะยาว!)
หากต้องการความช่วยเหลือ ให้เปิดปัญหา GitHub หรือเข้าร่วมเซิร์ฟเวอร์ Discord เพื่อช่วยแก้ปัญหา 99% เราจำเป็นต้องมีข้อผิดพลาดที่คุณได้รับพร้อมกับไฟล์ params.json
และ cookieString.txt
มีวิธีบนเซิร์ฟเวอร์ Discord เพื่อส่งแบบส่วนตัว
ฉันอยากได้คู่มือสำหรับรถยนต์ของฉัน และฉันซื้อการสมัครสมาชิกโดยหวังว่าจะดาวน์โหลดไฟล์ PDF นั่นคือสิ่งที่ฉันทำ!
สองเหตุผล ประการแรก ฉันไม่ต้องการ DDoS Ford (พวกเขายังมี Akamai อยู่ข้างหน้าด้วย และคำขอแบบขนานจำนวนมากก็จะกระตุ้นมันและทำให้เราถูกบล็อก) ประการที่สอง มันง่ายกว่าในการเขียนโค้ดพร้อมกัน