Closed rennerocha closed 12 months ago
A manipulação das datas foi necessário para que o jsonschema pudesse validar os campos de data
Relacionado a: https://github.com/scrapinghub/spidermon/issues/420
Olá! @rennerocha Testando aqui localmente sigo com o problema de validação. 😢
Desconsidere caso a mudança era realmente apenas focada na parte das datas e não sobre a validação geral.
Comandos e logs de teste:
scrapy crawl ma_bacurituba -a start_date=2023-09-01 -s LOG_FILE=log_ma_bacurituba.txt
scrapy crawl mg_candeias -a start_date=2023-09-01 -s LOG_FILE=log_mg_candeias.txt
log_mg_candeias.txt
log_ma_bacurituba.txt
Olá! @rennerocha Testando aqui localmente sigo com o problema de validação. 😢
Desconsidere caso a mudança era realmente apenas focada na parte das datas e não sobre a validação geral.
Comandos e logs de teste:
scrapy crawl ma_bacurituba -a start_date=2023-09-01 -s LOG_FILE=log_ma_bacurituba.txt
scrapy crawl mg_candeias -a start_date=2023-09-01 -s LOG_FILE=log_mg_candeias.txt
log_mg_candeias.txt log_ma_bacurituba.txt
Bom, resolveu o problema de validação com as datas né? :man_shrugging:
Esse problema no files
também parece estar relacionado. Vou tentar reproduzir aqui.
Testei aqui, tanto no ambiente virtual com o upgrade de dependências quanto no ambiente como o QD está hoje, pós-reversão: não funciona em nenhuma ainda.
Porém, @rennerocha, vc viu ali no meu PR #930, que não dava mais erro de validação? desenvolvi aquele PR com as dependências atualizadas e bastou fazer aquela mudança que voltou a coletar. Imagino que só pq ali parou de dar erro, tb não significa que tenha um bug silencioso e isso se mistura com meu limitado conhecimento de Scrapy, mas como passou a funcionar, me chamou atenção...
@rennerocha Fiz os teste aqui e tirando a questão com as datas chegando em string no banco de dados. Tudo parece estar funcionando agora. 🥳
Logs de teste com o erro WARNING: Something wrong has happened when adding the gazette in the database. Date: 2023-09-15. File Checksum: 67b0e7e6ba28c5f5597b5f4973829406. Details: ('(builtins.TypeError) SQLite Date type only accepts Python date objects as input.',)
refente a "date" e "scraped_at" chegando como string.
log_ma_bacurituba.txt log_mg_candeias.txt
Transformando os mesmos de volta ao formato date e datetime com as linhas de codigo abaixo. Eles voltaram a ser registrados normalmente ao banco de dados
gazette_item["date"] = dt.datetime.strptime(gazette_item["date"], '%Y-%m-%d').date()
gazette_item["scraped_at"] = dt.datetime.fromisoformat(
gazette_item["scraped_at"][:-1]
)
Logs pôs conversão:
log_mg_candeias(date_convertido).txt log_ma_bacurituba(date_convertido).txt
AO ABRIR um Pull Request de um novo raspador (spider), marque com um
X
cada um dos items do checklist abaixo. NÃO ABRA um novo Pull Request antes de completar todos os items abaixo.Checklist - Novo spider
start_date
eend_date
definidos) ao menos uma vez e os dados retornados estavam corretos.log_count/ERROR
igual a zero).start_date
no seu spider com a data do Diário Oficial mais antigo disponível na página da cidade.Descrição
<Descreva o seu Pull Request informando a issue (caso exista) que está sendo solucionada ou uma descrição do código apresentado>