O presente pacote permite que você acesse as tabelas dos qualis de acordo com área e classificação do evento diretamente do site do Sucupira, via R. Você pode pode selecionar se deseja obter todas as tabelas do site (processo demorado) ou apenas algumas, relacioná-las e fazer as operações que desejar.
O pacote QualisR
é desenvolvido utilizando o controle de versão do Github. Então você pode fazer download dele utilizando o pacote devtools
:
# install.packages("devtools") devtools::install_github("JessicaSousa/QualisR")
O pacote possui três funções get_qualis_table
que retorna a tabela dos qualis de acordo com o evento e área, a função get_options
que retorna as opções do menu de seleção e get_sucupira_page
que realiza GET
na página do Sucupira.
#Realiza Get na página do Sucupira sucupira_get <- QualisR::get_sucupira_page() print(sucupira_get$status_code) #Obter a tabela de periódicos de computação no triênio 2010-2012 tabela_computacao <- QualisR::get_qualis_table(sucupira_get, area = 'computação', event = 'triênio 2010-2012') head(tabela_computacao[order(tabela_computacao$Estrato), ])
Primeiramente, no site do sucupira temos alguns menus de opções, o que permite que busquemos por área, estrato ou por título por exemplo. Primeiramente vamos descobrir o nome de cada um desses menus de opções com a ajuda do pacote rvest. A área onde se encontra os campos da busca personalizada do Sucupira estão dentro do nó cuja classe é form-group
(Isso pode ser visto através da inspeção do elemento através de um navegador).
library(magrittr) url <- paste("https://sucupira.capes.gov.br/", "sucupira/public/consultas/coleta/", "veiculoPublicacaoQualis/", "listaConsultaGeralPeriodicos.jsf", sep = "") sucupira_session <- rvest::html_session(url) #Obter a região do html correspondente ao formulário de busca formulario <- sucupira_session %>% xml2::read_html() %>% rvest::html_nodes('.form-group') campo <- formulario %>% rvest::html_nodes('label') %>% rvest::html_text() nomes <- formulario %>% rvest::html_nodes('.form-control') %>% rvest::html_attr('name')
labels <- gsub("[\r\n]", "", campo) campos <- data.frame(campo = labels, nomes = nomes) knitr::kable(campos, caption = 'Nomes dos nós do formulário')
Acessando o site do Sucupira vemos que há alguns campos que permitem a seleção de itens, são eles Evento de Classificação:, Área de Avaliação: e Classificação:. A função QualisR::get_options
permite que tenhamos acesso as opções desses respectivos menus ao passar o nome do nó o qual esse se encontra. Essa função recebe como argumento um resultado do rvest::GET
do site do Sucupira e uma string representando o nome nó. A seguir vamos obter as opções para o campo de Classificação:.
#ATENÇÃO, é para colocar o nome de acordo com o nome do nó (após o form:) options <- QualisR::get_options(request = sucupira_get, form = 'estrato')
Assim, obtemos a lista de opções e seus respectivos valores utilizados no processo de submissão do formulário. O resultado da operação anterior pode ser visto a seguir. Para obter as opções dos outros campos basta seguir os mesmos passos.
knitr::kable(options, caption = 'Lista de Estratos', row.names = FALSE)
Para realizar uma busca no site, precisamos primeiramente conhecer seus campos. No exemplo anterior obtemos o nome desse campos. Vamos novamente ao httr
. Eu quero pesquisar pelo Journal of Statistical Software selecionando o evento de classificação de periódicos do quadriênio de 2013-2016.
evento.op <- QualisR::get_options(request = sucupira_get, form = 'evento') #Valor do campo do envento que corresponde ao quadriênio evento.valor <- evento.op$value[1] #Obter ViewState da Página do Sucupira viewstate <- sucupira_get %>% xml2::read_html() %>% rvest::html_node(xpath = "//*[@id=\"javax.faces.ViewState\"]") %>% rvest::html_attr("value") parametros <- list( 'form' = 'form', 'form:evento'= evento.valor, 'form:area' = '', 'form:issn:issn' ='', 'form:checkTitulo' = TRUE, 'form:j_idt52' = 'Journal of Statistical Software', 'form:estrato' = '', 'form:consultar' = 'Consultar', 'javax.faces.ViewState' = viewstate ) resultado <- httr::POST(url, body = parametros) pagina <- resultado %>% httr::content('text') %>% xml2::read_html() tabela <- pagina %>% rvest::html_table() %>% .[[1]]
Como resultado da busca pelo pelo periódico, obtemos a tabela a seguir com 5 linhas.
knitr::kable(tabela, caption = 'Resultado da busca do periódico', row.names = FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.