Загружает HTML- и PDF-версии руководств по обслуживанию Ford с сайта PTS.
Купили 72-часовую подписку на руководства по обслуживанию Ford и хотите сохранить ее навсегда? Вот репо для вас.
Авторские права на эти руководства принадлежат компании Ford, поэтому не распространяйте их!
Чтобы это работало, в настоящее время требуются некоторые знания DevTools браузера. Если вы не знаете, как их использовать, спросите друга, который знает.
Этот сценарий использует playwright
, библиотеку взаимодействия с браузером без заголовка, для сохранения документов в виде 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.
, выполните следующие два шага, чтобы убедиться, что ваши зависимости обновлены.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.
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-адрес, скопированный на шаге 2.https://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/
. Вы должны увидеть вывод, который выглядит следующим образом.
Прежде чем руководства начнут загружаться, бот проверит правильность настройки файлов cookie, попытавшись открыть сайт PTS в фоновом режиме. Хотя вы можете пропустить эту проверку, существует большая вероятность, что ее пропуск (с помощью --noCookieTest
) приведет в дальнейшем к ошибке.
Убедитесь, что каталог загруженного руководства пуст — в нем будет много подпапок.
Вы можете получить дополнительную информацию о параметрах, запустив yarn start --help
. Примечательно, --saveHTML
сохранит файлы .html
вместе с файлами .pdf
, загруженными по умолчанию, а --ignoreSaveErrors
продолжит загрузку руководств в случае возникновения ошибки, пропуская файл с ошибкой.
Это может занять некоторое время! На быстром компьютере с быстрым подключением к Интернету и, что более важно, быстрым дисководом, загрузка руководств для Taurus 2005 года займет более 15 минут. Потерпи!
Кроме того, полученная папка довольно большая. Папка на Таурусе 2005 года была около 300мб, а папка F150 - пару гигабайт.
Возникли проблемы? См. раздел «Распространенные проблемы» или «Часто задаваемые вопросы».
Этот бот загружает все руководство по ремонту и все электрические схемы для установленного вами автомобиля.
Схемы подключения будут находиться в outputpath/Wiring
. Также имеется файл toc.json
с оглавлением электрических схем.
Если у вас есть папка Wiring/Connector Views
, там есть специальный файл: Connectors.csv
. Он расскажет вам, где найти каждый разъем в автомобиле и где он находится в таблицах расположения компонентов. Откройте его в Excel или Google Sheets, чтобы просмотреть данные. Вот краткий пример:
Идентификатор соединителя | Разъем | Расположение разъема Виды Номер страницы | Ссылка на сетку | Расположение в автомобиле |
---|---|---|---|---|
С168А | Трансмиссия 10R80 (2,7 л) | 29 | F5 | Передача инфекции |
1840 год | Соленоид контроля линейного давления (LPC) | 34 | Е8 | Внутренняя передача |
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
, поэтому в большинстве файловых браузеров они отображаются вверху списка файлов.
При запуске сценария он пытается войти в PTS, чтобы убедиться, что ваши файлы cookie работают. Если это не удастся, возможно, вы не сможете получить руководства.
Попробуйте повторно собрать файлы cookie и убедитесь, что вы используете правильные. Если вы на 100% уверены, что ваши файлы cookie верны, вы можете добавить к команде --noCookieTest
.
Что ж, похоже, срок вашей подписки истек. Вам необходимо продлить его, чтобы загрузить руководства.
Эту проверку также можно пропустить с помощью --noCookieTest
, но без подписки вы не сможете скачать руководства.
...
не найден в строке cookie. Это может повлиять на функциональность.Скрипт автоматически сверяет ваш файл cookie со списком ожидаемых файлов cookie. Если он не сможет найти один из ожидаемых файлов cookie, он предупредит вас (обратите внимание, что бот не остановится, если это распечатается).
Если вы видите это сообщение и скрипт начинает загружать руководства, оставьте его — это просто предупреждение. Если вы видите сообщение и все загружается нормально, откройте проблему на GitHub, чтобы я мог исправить ее для других.
Если у вас возникли проблемы, попробуйте повторно собрать файлы cookie.
ERR_HTTP2_PROTOCOL_ERROR
Это может означать либо то, что ваши файлы cookie недействительны, либо компания Ford (на самом деле Akamai) обнаружила, что мы используем автономный браузер (Playwright).
Сначала попробуйте повторно собрать файлы cookie и повторить попытку. Если у вас все еще есть проблемы, свяжитесь с нами.
ERR_BAD_RESPONSE
Обычно это означает, что одно из полей в вашем файле params.json
неверно. Убедитесь, что все поля заполнены правильно, и если проблемы по-прежнему возникают, откройте проблему на GitHub. (Это иногда случается, когда Ford обновляет свой сайт.)
Все те, что я тестировал. Ради интереса я попробовал:
Все работало безупречно!
Чтобы повторно собрать файлы cookie, следуйте инструкциям в этом наборе инструкций, убедившись, что вы:
Cookie:
часть заголовка, если вы его скопировали.Raw
в правом верхнем углу Request Headers
;
между первой пастой и второй пастойЕсли у вас все еще возникают проблемы, свяжитесь с нами.
Вероятно! Мы добились успеха по всей Северной Америке, Южной Америке, Европе и Австралии.
Хотя сценарий написан на английском языке (то есть все распечатываемые сообщения будут на английском языке), он будет загружать руководства на языке, указанном в params.json
. Обратите внимание, что компания Ford должна иметь руководство на запрошенном языке.
Чтобы скачать руководства на определенном языке, измените язык PTS , заново соберите все параметры и снова запустите загрузку.
Поскольку Ford продолжает менять способы доступа к руководствам, этот проект требует постоянного обслуживания.
Если этот проект был вам полезен, вы можете поддержать этот проект у спонсоров GitHub (нажмите кнопку «Спонсор» вверху страницы), купить мне кофе или просто поделиться им!
Вклад через запросы на включение также более чем приветствуется. Чтобы увеличить шансы на объединение вашего PR, пожалуйста:
node_modules
)yarn format
перед отправкой на легкое рассмотрение.Это не требования — я всегда могу помочь вам с этими вещами — но они ускоряют процесс.
В целом я рад помочь, но я студент дневного отделения университета, и это проект чистой страсти. Я также не держу под рукой подписку PTS для тестирования (в долгосрочной перспективе это довольно дорого!).
Для получения помощи либо откройте задачу GitHub, либо присоединитесь к серверу Discord. Чтобы помочь с 99% проблем, мне понадобится ошибка, которую вы получаете вместе с файлами params.json
и cookieString.txt
. На сервере Discord есть способ отправить их конфиденциально.
Я хотел получить руководство для своей машины и купил подписку в надежде скачать PDF-файл, так я и сделал!
Две причины. Во-первых, я не хочу, чтобы Форд устроил DDoS (у них также есть Akamai перед этим, и тонна параллельных запросов наверняка спровоцировала бы это и нас заблокировали). Во-вторых, было проще писать синхронный код.