Open jjpaulo2 opened 19 hours ago
Exemplo de requisição para listar os diários de Piripiri-PI no dia 18/09/2024.
POST http://www.diarioficialdosmunicipios.org/consulta/ConPublicacaoGeral/ConPublicacaoGeral.php
Content-Type: application/x-www-form-urlencoded
script_case_init=8073&script_case_session=7am12sl4hcefgh0kn452ail2v3&nmgp_opcao=busca&nmgp_save_name_top=&NM_filters_del_top=&nomeentidade_cond=eq&nomeentidade=Prefeitura%23%23%40%40Prefeitura&numedicao_cond=qp&numedicao=&nomemunicipio_cond=eq&nomemunicipio=Piripiri%23%23%40%40Piripiri&nomedoc_cond=qp&nomedoc=&data_cond=bw&data_dia=18&data_mes=09&data_ano=2024&data_input_2_dia=18&data_input_2_mes=09&data_input_2_ano=2024&codigo_cond=eq&codigo=&NM_operador=and&nmgp_tab_label=nomeentidade%3F%23%3FEntidade%3F%40%3Fnumedicao%3F%23%3FN%B0+Edi%E7%E3o%3F%40%3Fnomemunicipio%3F%23%3FMunic%EDpio%3F%40%3Fnomedoc%3F%23%3FDocumento%3F%40%3Fdata%3F%23%3FData%3F%40%3Fcodigo%3F%23%3FIdentificador%3F%40%3F&bprocessa=pesq&nmgp_save_name_bot=&NM_filters_del_bot=&form_condicao=3
Retorno:
<script type="text/javascript">parent.NM_apaga_erro()</script><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML>
<BODY class="scGridPage">
<SCRIPT type="text/javascript">
parent.document.getElementById('nmsc_iframe_ConPublicacaoGeral').src = 'ConPublicacaoGeral.php?nmgp_opcao=pesq&script_case_init=8073&script_case_session=7am12sl4hcefgh0kn452ail2v3';
</SCRIPT>
</BODY>
</HTML>
Podemos usar uma regex pra extrair o trecho de url ConPublicacaoGeral.php?nmgp_opcao=pesq&script_case_init=8073&script_case_session=7am12sl4hcefgh0kn452ail2v3
, e concatenar à url base http://www.diarioficialdosmunicipios.org/consulta/ConPublicacaoGeral
.
Dessa forma, obtemos a URL da página (iframe) contendo a tabela com os diários daquela data.
Usamos essa página para fazer uma leitura de quantos registros vieram. Após isso, podemos solicitar um arquivo PDF único para todos os registros retornados.
POST http://www.diarioficialdosmunicipios.org/consulta/ConPublicacaoGeral/ConPublicacaoGeral.php
Content-Type: application/x-www-form-urlencoded
nmgp_opcao=formphp&rec=&nm_call_php=AgruparPDFs&nm_run_opt_sel=1%3B2%3B3%3B4%3Bundefined&script_case_init=8073&script_case_session=7am12sl4hcefgh0kn452ail2v3&NM_ck_grid%5B%5D=0&NM_ck_grid%5B%5D=1&NM_ck_grid%5B%5D=2&NM_ck_grid%5B%5D=3&NM_ck_grid%5B%5D=4
Retorno:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html DIR='LTR'>
<head>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="/consulta/_lib/prod/third/jquery/js/jquery.js"></script>
<script type="text/javascript" src="/consulta/_lib/prod/third/jquery_plugin/malsup-blockui/jquery.blockUI.js"></script>
<script type="text/javascript">var sc_pathToTB = '/consulta/_lib/prod/third/jquery_plugin/thickbox/';</script>
<script type="text/javascript" src="/consulta/_lib/prod/third/jquery_plugin/thickbox/thickbox-compressed.js"></script>
<link rel="stylesheet" href="/consulta/_lib/prod/third/jquery_plugin/thickbox/thickbox.css" type="text/css" media="screen" />
<link rel="stylesheet" type="text/css" href="../_lib/css/Tipo2/Tipo2_grid.css" />
<link rel="stylesheet" type="text/css" href="../_lib/css/Tipo2/Tipo2_gridLTR.css" />
</head>
<body class="scGridPage">
<table class="scGridTabela" align="center"><tr><td>
<script>window.open('http://www.diarioficialdosmunicipios.org/intranet/_lib/file/doc/temp/result19092024110941.pdf');</script> <form name="Fredir" method="post"
target="_self">
<input type="hidden" name="nmgp_parms" value=""/>
<input type="hidden" name="nmgp_url_saida" value="/consulta/ConPublicacaoGeral/ConPublicacaoGeral.php">
<input type="hidden" name="script_case_init" value="8073"/>
<input type="hidden" name="script_case_session" value="7am12sl4hcefgh0kn452ail2v3"/>
</form>
<SCRIPT type="text/javascript">
document.Fredir.target = "_self";
document.Fredir.action = "/consulta/ConPublicacaoGeral/ConPublicacaoGeral.php";
document.Fredir.submit();
</SCRIPT>
Por fim, com regex conseguiríamos extrair a URL do documento http://www.diarioficialdosmunicipios.org/intranet/_lib/file/doc/temp/result19092024110941.pdf
dentro da função window.open
.
Marco esta issue como question pq acho que não temos outro raspador que implemente uma solução pra um caso assim; é também a primeira vez que me deparo com isso.
Mas já é bacana saber que já achou um caminho
URL
http://www.diarioficialdosmunicipios.org
Municípios replicados
Formato da publicação
Os diários oficiais são publicados em PDF (imagem scanneada)
Detalhes do site de publicação
Possui paginação, Possui filtro por data
Observações
Podem haver vários documentos publicados para um mesmo dia. Mas o próprio sistema tem uma função para selecionar esses documentos e gerar um pdf único.
Não existe uma issue aberta sobre isso