tpsp
(acrônimo para "Transporte Público de São Paulo") é uma pequena aplicação
escrita em Python cujo objetivo é exibir o estado atual das linhas da CPTM e
Metro.
AVISO: Este projeto não possui relações com o Estado de São Paulo, a CPTM, o Metro ou qualquer outro órgão governamental.
- Python (3.6.1 ou superior).
Não há, até a data de publicação desta aplicação, uma API pública para os serviços de trem e metrô do Estado de São Paulo. Os dados utilizados por esta aplicação são obtidos mediante web scraping das páginas online dos serviços.
O fluxo é relativamente simples:
- O parser recebe os argumentos e flags da linha de comando;
- Uma requisição
GET
é enviada à página do serviço a ser consultado; - O conteúdo
HTML
é analisado, quebrado a partir da estrutura e filtrado; - os trechos de interesse do conteúdo (as
divs
/.class
que guardam os nomes das linhas e seus respectivo status) são retidos; - Os dados das linhas são formatados e impressos na tela.
Cada resultado é filtrado e manipulado a partir das especificidades da construção da página web do serviço. Apesar de contraproducente, uma vez que mudanças na contrução das páginas podem (e vão) quebrar a funcionalidade, este foi o melhor approach encontrado.
$ pip3 install tpsp
positional arguments:
{cptm,metro} the public transportation service
optional arguments:
-h, --help show this help message and exit
-v, --version show the program version and exit
-j, --json show the output in JSON format
--copyright show the copyright information and exit
examples:
$ tpsp cptm
# => shows the current state of all CPTM lines
$ tpsp metro --json
# => shows the current state of all Metro lines and formats
the output in JSON
Na medida do possível sob a lei, Caian Ertl renunciou a todos os
direitos autorais e direitos relacionados ou adjacentes a este trabalho. No
espírito da liberdade de informação, encorajo você a forkar, modificar,
alterar, compartilhar ou fazer o que quiser com este projeto! ^ C ^ V