Baixa versões em HTML e PDF dos Manuais de Serviço Ford do PTS.
Comprou uma assinatura de 72 horas dos manuais de serviço da Ford e deseja salvá-la permanentemente? Aqui está o repositório para você.
Esses manuais são protegidos por direitos autorais da Ford, portanto, não os compartilhe!
Fazer com que isso funcione atualmente requer algum conhecimento do DevTools do navegador. Se você não tiver certeza de como usá-los, pergunte a um amigo que saiba.
Este script usa playwright
, uma biblioteca de interoperabilidade de navegador sem cabeça, para salvar documentos como arquivos PDF em vez de HTML bruto (desta forma, os arquivos incluem imagens).
Embora este script tenha sido verificado para funcionar nativamente no Windows (consulte o problema nº 6), é recomendado executá-lo em WSL. A execução em WSL torna a instalação de coisas como Git e Node muito mais fácil.
WSL é uma forma de rodar Linux (Ubuntu é recomendado para este projeto) em conjunto com o Windows. É muito mais rápido que uma máquina virtual, mas ainda usa o kernel Linux real. Saiba mais e veja as instruções de instalação aqui.
corepack
)corepack enable
git clone https://github.com/iamtheyammer/fetch-ford-service-manuals.git
e entre no diretório do repositório (provavelmente com cd fetch-ford-service-manuals
)git pull
para se atualizar!git pull
não disser Already up to date.
, execute as próximas duas etapas para garantir que suas dependências estejam atualizadas.git stash
, git pull
e git stash apply
para desarmazenar seus arquivos.yarn
para baixar as dependênciasyarn playwright-setup
para baixar e configurar o PlaywrightEstas instruções destinam-se ao Chrome ou navegadores baseados no Chrome.
templates/
, faça uma cópia de cookieString.txt.template
e nomeie-a como cookieString.txt
cookieString.txt
templates/
, faça uma cópia de params.json.template
e nomeie-a como params.json
.Se o seu veículo foi fabricado ANTES de 2003, siga estas instruções.
Este script requer alguns dados sobre o seu carro que não estão disponíveis na GUI do PTS para obter o manual correto.
https://www.fordservicecontent.com/Ford_Content/PublicationRuntimeRefreshPTS//publication/prod_1_3_372022/TreeAndCover/workshop/32/~WSLL/{some numbers here}
. Deve ser semelhante ao pedido desta foto.templates/params.json
e copie/cole as informações dessa solicitação nos valores do campo JSON .workshop
.Se o seu veículo foi fabricado em 2003 ou POSTERIOR, siga estas instruções.
templates/params.json
e altere apenas:workshop.modelYear
até o ano do seu carropre_2003.alphabeticalIndexURL
para o URL que você copiou na etapa 2https://www.fordservicecontent.com/Ford_Content/PublicationRuntimeRefreshPTS//wiring/TableofContent
(há parâmetros de consulta no final, tudo bem). Deve ser semelhante ao pedido desta foto.TableOfContent
, não TableOfContent
s
environment
, bookType
e languageCode
em .wiring
em params.json
.WiringBookTitle
ou WiringBookCode
ainda estiverem faltando, talvez seja necessário selecionar um manual de fiação. Depois de selecionar um manual, você os encontrará em outra solicitação para https://www.fordtechservice.dealerconnection.com/wiring/TableOfContents
(com alguns parâmetros de consulta no final):booktitle
→ WiringBookTitle
book
→ WiringBookCode
params.json
da melhor maneira possível.params.json
.cookieString.txt.template
chamada cookieString.txt
, caso ainda não o tenha feito.https://www.fordtechservice.dealerconnection.com/wiring/TableOfContents
(há parâmetros de consulta no final, tudo bem).TableOfContent
s
, não TableOfContent
cookieString.txt
.cookieString.txt
não deve incluir Cookie:
, por exemplo).cookieString.txt
. Para baixar o manual como PDFs, execute yarn start -c templates/params.json -s templates/cookieString.txt -o /directory/where/you/want/the/downloaded/manual/
. Você deverá ver uma saída semelhante a esta.
Antes de os manuais começarem a ser baixados, o bot validará se seus cookies estão configurados corretamente, tentando abrir o site PTS em segundo plano. Embora você possa pular esta verificação, há uma boa chance de que ignorá-la (com --noCookieTest
) resulte em um erro mais tarde.
Certifique-se de que o diretório do manual baixado esteja vazio - ele terá muitas subpastas.
Você pode obter mais informações de parâmetros executando yarn start --help
. Notavelmente, --saveHTML
salvará arquivos .html
junto com os arquivos .pdf
baixados por padrão, e --ignoreSaveErrors
continuará baixando manuais se um erro for encontrado, ignorando o arquivo com erro.
Pode demorar um pouco! Em um computador rápido com conexão rápida à Internet e, mais importante, uma unidade de disco rápida, mais de 15 minutos para baixar os manuais do Taurus 2005. Ser paciente!
Além disso, a pasta resultante é bastante grande. A pasta do Taurus 2005 tinha cerca de 300 MB, e a pasta F150 tinha alguns gigabytes.
Está tendo problemas? Consulte Problemas comuns ou Perguntas frequentes.
Este bot baixa todo o manual de oficina e todos os diagramas de fiação do veículo que você configurou.
Os diagramas de fiação estarão em outputpath/Wiring
. Há também um arquivo toc.json
com o índice dos diagramas de fiação.
Se você tiver uma pasta Wiring/Connector Views
, terá um arquivo especial lá: Connectors.csv
. Ele informa onde encontrar cada conector no carro e onde ele está nos gráficos de localização de componentes. Abra-o no Excel ou no Planilhas Google para ver os dados. Aqui está um exemplo rápido:
ID do conector | Conector | Número da página de visualizações de localização do conector | Referência de grade | Localização no veículo |
---|---|---|---|---|
C168A | Transmissão 10R80 (2,7L) | 29 | F5 | Transmissão |
Capítulo 1840 | Solenóide de controle de pressão de linha (LPC) | 34 | E8 | Transmissão interna |
Wiring/Connector Location Views
) A estrutura de pastas no diretório de saída irá imitar a estrutura do PTS, portanto, se um arquivo tiver um caminho como 1: General Information -> 00: Service Information -> 100-00 General Information -> About this Manual
, estará no pasta outputpath/1: General Information/00: Service Information/100-00 General Information/About this Manual.pdf
.
O arquivo cover.html
contém a capa do livro e um índice apresentado em marcadores. A árvore desses marcadores mapeia diretamente para a estrutura de arquivos do manual baixado. Observe que alguns caracteres não são permitidos em nomes de arquivos/pastas, portanto, caracteres como barras, dois pontos e outros são substituídos por travessões ao salvar.
O arquivo toc.json
contém o índice legível por computador, com o nome mapeado para o "número do documento", que é usado para buscar o PDF.
A maioria dos sistemas operacionais limita os nomes de arquivos a 255 bytes (não 255 caracteres). Para nomes de arquivos com mais de 200 caracteres (que são bastante raros), o downloader truncará o nome e adicionará (docID truncated)
no final.
Se você estiver tendo problemas para encontrar um documento com nome longo, procure-o em toc.json
, onde será uma chave com um valor. Esse valor é o docID
que estará no nome do arquivo.
Os veículos de 2002 ou mais antigos possuem uma estrutura diferente e mais difícil de encontrar no manual, portanto esta ferramenta utiliza apenas o índice alfabético. Isso significa que a saída é um pouco diferente; você simplesmente obterá uma estrutura plana com todas as páginas do manual na pasta de saída especificada.
Você pode navegar facilmente pelo manual abrindo outputpath/AA_Table_Of_Contents.html
- todos os links funcionam, exceto as letras no topo.
Existem também alguns arquivos especiais:
AA_Table_Of_Contents.html
é um índice especial processado onde todos os links funcionam! Abra-o em seu navegador para navegar no manual.AAA_alphabeticalIndex.json
é um arquivo JSON com todos os links no índice alfabético. Não é tão útil quanto o índice, mas está lá se você precisar. É o resultado do script de processamento.AAA_originalTableOfContents.html
é o índice original, portanto os links não funcionam. Está lá se você precisar. É o resultado do script de processamento. Esses arquivos são prefixados com AAA
para que apareçam no topo da lista de arquivos na maioria dos navegadores de arquivos.
Quando o script é iniciado, ele tenta entrar no PTS para verificar se os cookies estão funcionando. Se isso falhar, talvez você não consiga obter os manuais.
Tente coletar cookies novamente e certifique-se de usar os corretos. Se tiver 100% de certeza de que seus cookies estão corretos, você pode adicionar --noCookieTest
ao comando.
Bem, parece que sua assinatura expirou. Você precisará renová-lo para baixar os manuais.
Esta verificação também pode ser ignorada com --noCookieTest
, mas sem uma assinatura você não poderá baixar manuais.
...
não encontrado na sequência de cookies. Isso pode afetar a funcionalidade.O script verifica automaticamente seu arquivo de cookie em relação a uma lista de cookies esperados. Se não conseguir encontrar um dos cookies esperados, ele irá avisá-lo (observe que o bot não para se isso for impresso).
Se você vir esta mensagem e o script começar a baixar os manuais, deixe para lá - é apenas um aviso. Se você vir a mensagem e tudo for baixado corretamente, abra um problema no GitHub para que eu possa corrigi-lo para outras pessoas.
Se você estiver com problemas, tente coletar seus cookies novamente.
ERR_HTTP2_PROTOCOL_ERROR
Isso pode significar que seus cookies são inválidos ou que a Ford (na verdade, Akamai) detectou que estamos usando um navegador sem cabeça (Playwright).
Primeiro, tente coletar novamente seus cookies e tente novamente. Se você ainda tiver problemas, entre em contato.
ERR_BAD_RESPONSE
Isso geralmente significa que um dos campos do arquivo params.json
está incorreto. Verifique se todos os campos estão corretos e se ainda estiver com problemas, abra um problema no GitHub. (Isso às vezes acontece quando a Ford atualiza seu site.)
Todos os que testei. Só por diversão, tentei:
Tudo funcionou perfeitamente!
Para recolher novamente cookies, siga as instruções deste conjunto de instruções, certificando-se de:
Cookie:
parte do cabeçalho, se você o copiouRaw
no canto superior direito dos Request Headers
;
entre a primeira pasta e a segunda pastaSe você ainda estiver tendo problemas, entre em contato.
Provavelmente! Tivemos sucesso em toda a América do Norte, América do Sul, Europa e Austrália.
Embora o script esteja em inglês (o que significa que todas as mensagens impressas estarão em inglês), ele fará o download dos manuais no idioma especificado em params.json
. Observe que a Ford deve ter o manual disponível no idioma solicitado.
Para baixar manuais em um idioma específico, altere o idioma do seu PTS , colete novamente todos os parâmetros e execute o download novamente.
À medida que a Ford continua a mudar a forma como os manuais são acessados, este projeto requer manutenção contínua.
Se este projeto foi útil para você, você pode apoiá-lo nos patrocinadores do GitHub (clique no botão "Patrocinar" no topo da página), compre um café para mim ou apenas compartilhe!
Contribuições por meio de solicitações pull também são mais que bem-vindas. Para maior chance de mesclar seu PR, por favor:
node_modules
)yarn format
antes de enviar para uma revisão fácilEstes não são requisitos - sempre posso ajudá-lo com essas coisas - mas tornam o processo mais rápido.
Geralmente fico feliz em ajudar, mas sou um estudante universitário em tempo integral e este é um projeto de pura paixão. Eu também não mantenho uma assinatura PTS disponível para testes (é muito caro a longo prazo!).
Para obter ajuda, abra um problema no GitHub ou entre no servidor Discord. Para ajudar com 99% dos problemas, precisarei do erro que você está recebendo com seus arquivos params.json
e cookieString.txt
. Existe um método no servidor Discord para enviá-los de forma privada.
Queria ter o manual do meu carro e comprei a assinatura na esperança de baixar um PDF, então foi exatamente o que fiz!
Duas razões. Em primeiro lugar, não quero fazer DDoS Ford (eles também têm Akamai na frente disso, e uma tonelada de solicitações paralelas iriam acioná-lo e nos bloquear). Em segundo lugar, era mais fácil codificar de forma síncrona.