Qual o melhor lugar para se sentar no ônibus? Ou como utilizar Python e Scrapy para extrair dados da internet
Ao escolher um lugar no ônibus, qual a melhor poltrona para se comprar? Geralmente, sempre olhamos o aspecto de segurança, procurando o lugar mais seguro em caso de acidente.
Particularmente, sempre que vou viajar de ônibus, eu procuro os lugares mais vazios. Gosto de viajar sozinho. Só que, infelizmente, sou extremamente azarado em escolher lugares: sempre estou perto de gente que ouve música em um volume alto no fone de ouvido, de crianças impacientes com a viagem ou de pessoas incomodadas com o silêncio e que por isso adoram puxar conversa.
Talvez eu seja um pouco ranzinza, talvez eu tenha azar mesmo em ter sempre essas companhias ou talvez eu não saiba escolher onde sentar.
Eu sempre observei as páginas de venda online dos ônibus e sempre tive a percepção de que os lugares frontais estão sempre ocupados, enquanto o fundo do ônibus - principalmente na parte da direita - tende a ficar livre. Mas eu nunca analisei a sério isso.
Quer dizer, nunca tinha analisado até hoje.
Pensando nesse pequeno dilema da vida moderna, fiz um pequeno web scrapper com intuito de extrair informações da internet de ocupação de poltronas de ônibus de viagens. Minha ideia foi analisar diversas linhas de ônibus para extrair dados de ocupação de poltronas dessas linhas.
E para isso eu utilizei o Scrapy.
Scrapy é um framework feito em Python que auxilia na confecção de web crawlers e web scrappers. Para quem não o conhecia, existem excelentes tutoriais na internet ensinando como utiliza-lo, como esse ou esse.
Eu disponibilizei o web scrapper no github. Ele é bem simples. Para quem gosta de Python, a parte interessante fica no arquivo cometa_spider.py
, que é o robô de extração de dados propriamente dito. Ele vai navegando a partir da página inicial da Viação Cometa (CometaSpider.parse
), passando pela pesquisa de viagens (CometaSpider.parseSearch
e CometaSpider.parseBusList
) e terminando na análise das poltronas ocupadas daquelas viagens (CometaSpider.parseBus
).
Mas, voltando ao assunto inicial da postagem, eu fiz uma análise rápida das poltronas utilizadas.
No dia 15 de janeiro, analisei 528 viagens ainda não preenchidas por completo. O motivo de ignorar as viagens já preenchidas é simples: essas viagens são retiradas do site quando isso acontece. Ainda assim, não acredito que isso seja um problema: viagens totalmente ocupadas influenciam igualmente nas poltronas ocupadas, não gerando diferença na taxa de ocupação. Só deve-se levar em consideração que o objetivo aqui é ver proporcionalmente qual poltrona é menos ocupada pelos passageiros, e não a porcentagem de ocupação considerando todas as viagens.
Outro ponto importante é que as viagens foram analisadas antes de serem fechadas. Ou seja: a ideia foi pegar uma intenção geral de ocupação de poltronas, para descobrir qual as pessoas tendem a escolher primeiro, e não a chance exata daquela poltrona estar ocupada em uma viagem.
Foram analisadas a ida e volta de São Paulo à diversas localidades, como São Carlos, Campinas, Curitiba, Rio de Janeiro e Ribeirão Preto. A variação se deu para aumentar a quantidade de viagens e melhorar a amostra.
Também estou considerando que a procura de poltronas não vai variar de acordo com o dia, já que eu analisei apenas em um dia, sendo um domingo.
O resultado foi que, das 528 viagens amostradas na análise, as poltronas 1 (escolhida 383 vezes), 2 (321 vezes), 3 (224) e 19 (150) foram as mais procuradas. Enquanto as poltronas 38 (12 vezes), 42 (12), 34 (17) e 40 (18) foram as menos procuradas.
O mapa de utilização:
Ao contrário do que eu imaginava, é o lado esquerdo que fica menos ocupado no ônibus.
Ou seja: se você é ranzinza como eu e gosta de viajar sozinho, talvez as melhores poltronas para se viajar sejam 37, 41, 33 e 39... Desde que, claro, você não se importe em viajar com a turma do fundão.