#' Baixa acórdãos do Tribunal de Justiça de São Paulo a partir do andamento
#'
#' @param processos vetor com o número do processo com ou sem os separadores
#' @param diretorio Diretório. Default para o corrente.
#'
#' @return tabela com metadados do pdf e pdf do acórdão baixado com data
#' do acordao e número do processo.
#' @export
#'
tjsp_baixar_acordaos_cposg <- function(processos = NULL,
diretorio = ".") {
httr::set_config(httr::config(ssl_verifypeer = FALSE))
processos <- stringr::str_remove_all(processos, "\\D+") %>%
stringr::str_pad(width = 20, "left", "0") %>%
abjutils::build_id()
uri1 <- "https://esaj.tjsp.jus.br/cposg/search.do?"
pb <- progress::progress_bar$new(total = length(processos))
purrr::map_dfr(processos, purrr::possibly(~ {
pb$tick()
httr::GET("https://esaj.tjsp.jus.br/cposg/open.do?gateway=true")
p <- .x
unificado <- p %>%
stringr::str_extract(".{15}")
foro <- p %>%
stringr::str_extract("\\d{4}$")
query1<- list(conversationId = "", paginaConsulta = "1", localPesquisa.cdLocal = "-1",
cbPesquisa = "NUMPROC", tipoNuProcesso = "UNIFICADO", numeroDigitoAnoUnificado = unificado,
foroNumeroUnificado = foro, dePesquisaNuUnificado = p,
dePesquisa = "", uuidCaptcha = "", pbEnviar = "Pesquisar")
resposta1 <- httr::RETRY("GET",
url = uri1, query = query1,
quiet = TRUE, httr::timeout(2)
)
conteudo1 <- httr::content(resposta1)
if (xml2::xml_find_first(conteudo1, "boolean(//div[@id='listagemDeProcessos'])")) {
conteudo1 <- xml2::xml_find_all(conteudo1, "//a[@class='linkProcesso']") %>%
xml2::xml_attr("href") %>%
xml2::url_absolute("https://esaj.tjsp.jus.br") %>%
purrr::map(~ httr::RETRY("GET", .x, httr::timeout(2)) %>%
httr::content())
} else {
conteudo1 <- list(conteudo1)
}
conteudo1 %>%
purrr::map_dfr(purrr::possibly(~ {
cc <- .x
doc <- cc %>% xml2::xml_find_all("//tr/td/a[contains(.,'Acord\u00e3o Finalizado')]|//tr/td/a[contains(.,'Julgado virtualmente')]")
doc_num <- doc %>%
xml2::xml_attr("href") %>%
stringr::str_extract("\\d+")
doc_texto <- doc %>%
xml2::xml_text(trim = TRUE)
decisao <- doc %>%
xml2::xml_find_all("following-sibling::span") %>%
xml2::xml_text()
data_decisao <- doc %>%
xml2::xml_find_all("../preceding-sibling::td[2]") %>%
xml2::xml_text(trim = TRUE) %>%
lubridate::dmy()
cdProcesso <- cc %>%
xml2::xml_find_all("//input[@name='cdProcesso']") %>%
xml2::xml_attr("value")
tempo <- lubridate::now() %>%
as.numeric() %>%
magrittr::multiply_by(1000) %>%
floor() %>%
as.character()
uri2 <- purrr::map_chr(doc_num, ~ {
uri_parseada <- httr::parse_url("https://esaj.tjsp.jus.br/cposg/verificarAcessoMovimentacao.do?")
uri_parseada$query <- list(
cdDocumento = .x,
origemRecurso = "M", cdProcesso = cdProcesso,
conversationId = "", `_` = tempo
)
httr::build_url(uri_parseada)
})
uri3 <- purrr::map_chr(uri2, ~ {
httr::RETRY("GET", .x, httr::timeout(2), quiet = TRUE) %>%
httr::content("text") %>%
unlist() %>%
httr::RETRY("GET", ., httr::timeout(2), quiet = TRUE) %>%
httr::content("text") %>%
stringr::str_extract("nuSeq.+?(?=.,)") %>%
paste0("https://esaj.tjsp.jus.br/pastadigital/getPDF.do?", .)
})
Sys.sleep(1)
purrr::map2(uri3, data_decisao, ~ {
httr::GET(.x, httr::write_disk(paste0(
diretorio,
"/", stringr::str_replace_all(.y, "/", "_"),
"_", stringr::str_remove_all(p, "\\D+"), ".pdf"
),
overwrite = TRUE
))
})
tibble::tibble(
processo = p, data_jugalmento = data_decisao,
doc_texto = doc_texto, decisao = decisao, doc_num = doc_num,
url = uri3
)
}, otherwise = NULL))
}, otherwise = NULL))
}
#' @rdname tjsp_baixar_acordaos_cposg
#' @export baixar_acordaos
baixar_acordaos <- tjsp_baixar_acordaos_cposg
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.