Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Timon-MA #869

Open
1 task done
ogecece opened this issue Jun 12, 2023 · 9 comments · May be fixed by #1012
Open
1 task done

Timon-MA #869

ogecece opened this issue Jun 12, 2023 · 9 comments · May be fixed by #1012
Labels
dificuldade: baixa Pouco desafiador de desenvolver spider Adiciona ou atualiza um robô raspador

Comments

@ogecece
Copy link
Member

ogecece commented Jun 12, 2023

URL da forma de consulta

https://timon.ma.gov.br/semgov/diario/listagem.php?pagina=0

Período de publicação

20/03/2013 - atualmente

Formato da publicação

Os diários oficiais são publicados em PDF (texto)

Conteúdo da publicação

Diário único: documento publicado é uma edição completa do diário oficial

Algumas datas contém edições suplementares.

Detalhes do site de publicação

Site funciona como uma paginação simples (até um pouco demais pois é possível ver todas as páginas disponíveis).

Fazendo requisição GET para https://timon.ma.gov.br/semgov/diario/pesquisaP.php?editData_inicio=20/03/2013&editData_fim=12/06/2023&inputDiario=&pagina=1 (modificando as datas) é possível filtrar por data e o resultado é a mesma lista paginada que temos no listagem.php.

Observações

Talvez o link do arquivo baixado seja gerado dinamicamente e não fique disponível depois: teste

Não existe uma issue aberta para esse município

  • Eu verifiquei que não existe uma issue aberta ou marcada com incompatible para o mesmo município.
@ogecece ogecece added spider Adiciona ou atualiza um robô raspador dificuldade: baixa Pouco desafiador de desenvolver labels Jun 12, 2023
@peddrogomes
Copy link

Pegando esse

@trevineju trevineju linked a pull request Jun 20, 2023 that will close this issue
5 tasks
@Winzen
Copy link
Contributor

Winzen commented Sep 5, 2023

[Dicas para quem futuramente possa assumir]

Os diários agora estão localizados em https://timon.ma.gov.br/diario/

Verificando o novo site vi que se você mandar um POST para https://timon.ma.gov.br/diario/pesquisa_numerodiario.php com o parâmetro de inputDiario: "1" você consegue uma pagina com a lista de todos os diários disponíveis.

Acredito que isso possa facilitar adaptação do código ao novo site

@engFelipeMonteiro
Copy link

Irei atuar durante a hackoberfest 2023

@engFelipeMonteiro
Copy link

[Dicas para quem futuramente possa assumir]

Os diários agora estão localizados em https://timon.ma.gov.br/diario/

Verificando o novo site vi que se você mandar um POST para https://timon.ma.gov.br/diario/pesquisa_numerodiario.php com o parâmetro de inputDiario: "1" você consegue uma pagina com a lista de todos os diários disponíveis.

Acredito que isso possa facilitar adaptação do código ao novo site

Náo consegui replicar o 'inputDiario=1',

verificado que o novo site possui 3 modos de pesquisa, por data, por palavra e por numero do diario.

Por data (todos)

curl 'https://timon.ma.gov.br/diario/pesquisa.php' \
   -H 'content-type: application/x-www-form-urlencoded' \
 --data-raw 'TipoDiario_datas=Todos&editData_inicio=01%2F01%2F2000&editData_fim=31%2F12%2F2023' \
  --compressed

Por data executivo?

curl 'https://timon.ma.gov.br/diario/pesquisa.php' \
  -H 'content-type: application/x-www-form-urlencoded' \
	  --data-raw 'TipoDiario_datas=Executivo&editData_inicio=01%2F01%2F2000&editData_fim=31%2F12%2F2023' \
  --compressed

Por data Legislativo:

url 'https://timon.ma.gov.br/diario/pesquisa.php' \
 -H 'content-type: application/x-www-form-urlencoded' \
 --data-raw 'TipoDiario_datas=Legislativo&editData_inicio=01%2F01%2F2000&editData_fim=31%2F12%2F2023' \
  --compressed

Pro palavra:

curl 'https://timon.ma.gov.br/diario/pesquisa_palavra.php' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  --data-raw 'TipoDiario_palavra=Todos&inputPalavra=' \
  --compressed

Por diario:

curl 'https://timon.ma.gov.br/diario/pesquisa_numerodiario.php' \
  -H 'content-type: application/x-www-form-urlencoded' \
  --data-raw 'TipoDiario_numero=Todos&inputDiario=10' \
  --compressed

A requisição post retorna a pagina html com os links dos documentos em (/html/body/div/header/div[2]/header/div/div[1]/header/div[2]/div/div/table/tbody/tr[1]/td[6]/a[1]).

@engFelipeMonteiro
Copy link

Os diarios estão sendo mostrados de forma continua desde 20/03/2013(start date).
Porém ha alguns(4) anteriores a isso, de forma esparsa

@engFelipeMonteiro
Copy link

finalizado de desenvolver o crawler e após executar ele inteiro parece que trouxe todos os pdfs, realizei algumas verificações

segue o fim do log de execução, parece que deu 1 erro:

2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] ------------------------------ MONITORS ------------------------------
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] Comparison Between Executions/Days without gazettes... OK
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] Requests/Items Ratio/Ratio of requests over items scraped count... OK
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] Error Count Monitor/test_stat_monitor... SKIPPED (Unable to find 'log_count/ERROR' in job stats.)
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] Finish Reason Monitor/Should have the expected finished reason(s)... OK
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] Item Validation Monitor/test_stat_monitor... FAIL
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] ----------------------------------------------------------------------
2023-10-17 23:24:15 [ma_timon] ERROR: [Spidermon] 
======================================================================
FAIL: Item Validation Monitor/test_stat_monitor
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/felipemonteirojacome/workspace/querido-diario/venv/lib/python3.9/site-packages/spidermon/contrib/scrapy/monitors.py", line 144, in test_stat_monitor
    assertion_method(
AssertionError: Expecting 'spidermon/validation/fields/errors' to be '<=' to '0'. Current value: '1'

2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] 5 monitors in 0.011s
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] FAILED (failures=1, skipped=1)
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] -------------------------- FINISHED ACTIONS --------------------------
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] ----------------------------------------------------------------------
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] 0 actions in 0.000s
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] OK
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] --------------------------- PASSED ACTIONS ---------------------------
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] ----------------------------------------------------------------------
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] 0 actions in 0.000s
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] OK
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] --------------------------- FAILED ACTIONS ---------------------------
2023-10-17 23:24:15 [spidermon.contrib.actions.discord] INFO: *ma_timon* finished
- Finish time: *2023-10-18 02:24:15.629638*
- Gazettes scraped: *3186*
- 🔥 1 failures 🔥
===== FAILURES =====
Item Validation Monitor/test_stat_monitor: Expecting 'spidermon/validation/fields/errors' to be '<=' to '0'. Current value: '1'
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] CustomSendDiscordMessage... OK
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] ----------------------------------------------------------------------
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] 1 action in 0.000s
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] OK
2023-10-17 23:24:15 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 1184834,
 'downloader/request_count': 3153,
 'downloader/request_method_count/GET': 3152,
 'downloader/request_method_count/POST': 1,
 'downloader/response_bytes': 3646730267,
 'downloader/response_count': 3153,
 'downloader/response_status_count/200': 3152,
 'downloader/response_status_count/404': 1,
 'elapsed_time_seconds': 2212.466172,
 'file_count': 3186,
 'file_status_count/downloaded': 3151,
 'file_status_count/uptodate': 35,
 'finish_reason': 'finished',
 'finish_time': datetime.datetime(2023, 10, 18, 2, 24, 15, 629638),
 'httpcompression/response_bytes': 4870196,
 'httpcompression/response_count': 2,
 'item_dropped_count': 1,
 'item_dropped_reasons_count/DropItem': 1,
 'item_scraped_count': 3186,
 'log_count/DEBUG': 9526,
 'log_count/ERROR': 1,
 'log_count/INFO': 71,
 'log_count/WARNING': 10,
 'memusage/max': 210485248,
 'memusage/startup': 99958784,
 'response_received_count': 3153,
 'scheduler/dequeued': 1,
 'scheduler/dequeued/memory': 1,
 'scheduler/enqueued': 1,
 'scheduler/enqueued/memory': 1,
 'spidermon/validation/fields': 25496,
 'spidermon/validation/fields/errors': 1,
 'spidermon/validation/fields/errors/field_too_short': 1,
 'spidermon/validation/fields/errors/field_too_short/files': 1,
 'spidermon/validation/items': 3187,
 'spidermon/validation/items/dropped': 1,
 'spidermon/validation/items/errors': 1,
 'spidermon/validation/validators': 1,
 'spidermon/validation/validators/item/jsonschema': True,
 'start_time': datetime.datetime(2023, 10, 18, 1, 47, 23, 163466)}
2023-10-17 23:24:15 [scrapy.core.engine] INFO: Spider closed (finished)

pendente realizar testes com start_date e end_date

scrapy crawl  -a start_date=
scrapy crawl  -a end_date=

possivelmente rodar com o log:

scrapy crawl  -s LOG_FILE=log_.txt

@engFelipeMonteiro
Copy link

ja fiz o push pra minha branch

@engFelipeMonteiro
Copy link

Identificado que o arquivo referente ao arquivo do dia 12/05/2021 não foi encontrado, edição suplementar.
Reportado na pagina sobre o problema

@talesmota
Copy link

finalizado de desenvolver o crawler e após executar ele inteiro parece que trouxe todos os pdfs, realizei algumas verificações

segue o fim do log de execução, parece que deu 1 erro:

Traceback (most recent call last):
File "/Users/felipemonteirojacome/workspace/querido-diario/venv/lib/python3.9/site-packages/spidermon/contrib/scrapy/monitors.py", line 144, in test_stat_monitor
assertion_method(
AssertionError: Expecting 'spidermon/validation/fields/errors' to be '<=' to '0'. Current value: '1'

2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] 5 monitors in 0.011s
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] FAILED (failures=1, skipped=1)
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] -------------------------- FINISHED ACTIONS --------------------------
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] ----------------------------------------------------------------------
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] 0 actions in 0.000s
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] OK
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] --------------------------- PASSED ACTIONS ---------------------------
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] ----------------------------------------------------------------------
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] 0 actions in 0.000s
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] OK
2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] --------------------------- FAILED ACTIONS ---------------------------
2023-10-17 23:24:15 [spidermon.contrib.actions.discord] INFO: ma_timon finished

  • Finish time: 2023-10-18 02:24:15.629638
  • Gazettes scraped: 3186
  • 🔥 1 failures 🔥
    ===== FAILURES =====
    Item Validation Monitor/test_stat_monitor: Expecting 'spidermon/validation/fields/errors' to be '<=' to '0'. Current value: '1'
    2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] CustomSendDiscordMessage... OK
    2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] ----------------------------------------------------------------------
    2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] 1 action in 0.000s
    2023-10-17 23:24:15 [ma_timon] INFO: [Spidermon] OK

pendente realizar testes com start_date e end_date

scrapy crawl -a start_date=
scrapy crawl -a end_date=
possivelmente rodar com o log:

scrapy crawl -s LOG_FILE=log_.txt

Oi @engFelipeMonteiro, conseguiu identificar a razão desse erro? Está acontecendo comigo também.

Abraços.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dificuldade: baixa Pouco desafiador de desenvolver spider Adiciona ou atualiza um robô raspador
Projects
Status: em revisão
Development

Successfully merging a pull request may close this issue.

6 participants