Open endersonmaia opened 4 years ago
Com esta mudança, seria possível incrementar os dados para os Estados que já contemplam com :
Hoje não está assim, mas a classe BaseCovid19Spider
poderia ser modificada para interpretar o parâmetro deaths=None
, por exemplo, como "não altere o número de óbitos".
Assim, você poderia dar um add_report
para cada fonte de dados, cada qual com a sua URL diferente, e nele acrescentar somente aqueles dados que tem para aquela fonte. Para aquele seu exemplo de GO, que tem duas URLs de CSVs, uma para casos e outra para óbitos, você chamaria um add_report
para cada um dos CSVs e teria um loop de add_city_case
para cada um.
É uma ideia.
Não sou tão experiênte com o Scrapy, mas como os dados são muito bagunçados nas próprias secretarias de saúde, como a de Minas que agora mudou o formato do arquivo csv, e essa de GO que tem 2 csv diferentes, acho que seria melhor dar uma "independência" maior a cada Spider, podendo elas chamar os parses necessários, pois como em GO, seriam necessários 2.
A BaseCovid19Spider continuaria com os mesmos métodos, mas abriria um arquivo csv para o dia da pesquisa, chamaria os parses ou a Spider em si, que populariam o arquivo, e depois fecharia esse arquivo.
Acho que essa seria a melhor opção, pra ser mais fácil mudar as Spiders a medidas que os formatos dos dados forem mudando, e para salvar os dados diariamente, ainda mais agora com essa ameaça de existir uma tentativa de esconde-los.
Contexto
Para fazer o scraping das página, em alguns casos podemos ter os dados de óbitos e casos em requests separados, e assim precisamos percorrer todos os dados, normalizá-los, antes de fazer um outro loop nos dados normalizados para só aí preencher os dados usando
BaseCovid19Spider .add_city_case(city, confirmed, deaths)
Objetivo
Deveria ser possível adicionar casos e óbitos independentemente.
Proposta Implementar métodos independentes, como :
add_city_confirmed_case(city, confirmed)
add_city_death_case(city, confirmed)
Ou que seja possível os parâmetros em
add_city_case
sejam opcionais.Poderíamos chamar
add_city_case("Maceió", confirmed=3)
e depois chamaradd_city_case("Maceio", deaths=1)
e fazer o tratamento internamente.--
Se isso já é possível hoje, me avisa e desconsidera a issue, meu Python ainda não é fluente. ;)