"...ele sempre concede exatamente aquilo que desejamos, esse é o problema..."
Gaunter é um Web Scrapper que captura informações das páginas Espelhos dos Grupos de Pesquisa cadastrados no DGP - Diretório de Grupos de Pesquisa do CNPq.
A imagem abaixo mostra um exemplo de página espelho de um Grupo de Pesquisa do Diretório de Grupos de Pesquisa do CNPq.
Abaixo está ilustrado um exemplo do Gaunter coletando informações da mesma página demonstrada acima. O Gaunter atualmente é composto por 7 rotas GET responsáveis cada uma por extrair uma parte das informações constantes nos Espelhos dos Grupos de Pesquisa cadastrados no DGP. Na ilustração abaixo é feita uma requisição para um rota que retorna informações de Identificação do Grupo de Pesquisa.
Certifique-se de ter o Python3 instalado na máquina bem como o gerenciador de pacotes do python pip.
$ pip install requests Flask beautifulsoup4
$ git clone https://github.com/alsgil13/gaunter.git
$ python ~/Gaunter/api/routes.py
Todas a rotas devem receber o código númerico que identifica o grupo. Este código é encontrado no final das URLs dos espelhos dos Grupos de Pesquisa. As rotas são estruturadas da seguinte maneira:
Grupo de pesquisa em Paleoherpetologia[endereço.do.host] / [nomeDaRota] / [CódigoDeIdentificaçãoDoGrupo]
Endereço para acessar o espelho do Grupo: dgp.cnpq.br/dgp/espelhogrupo/2300081346727364
Neste caso o código que identifica o grupo é: 2300081346727364
Para acessarmos a rota que busca as informações de Identificação do Grupo de Pesquisa em Paleoherpetologia devemos fazer uma requisição GET para a seguinte rota:
[endereço.do.host]/getId/2300081346727364
[host]/getId/<codigo>
Retorna um Json com todas as informações de Identificação do Grupo
{
"Identificação": {
"Nome": "Nome do Grupo",
"Situação do grupo": "Status do certificado",
"Ano de formação": "2004",
"Data da Situação": "10/01/2013 12:55",
"Data do último envio": "20/05/2020 19:12",
"Líder(es) do grupo": ["Lider 1", "Lider 2"],
"Área predominante": "Ciências Exatas e da Terra; Física",
"Instituição do grupo": "Universidade",
"Unidade": "Unidade/Departamento"
}
}
[host]/getEndereco/<codigo>
Retorna um Json com todas as informações de Endereço do Grupo
{
"Endereço": {
"Logradouro": "Avenida __________",
"Número": "000",
"Complemento": "...",
"Bairro": "Nome do Bairro",
"UF": "UF",
"Localidade": "Cidade",
"CEP": "00000000",
"Caixa Postal": "...",
"Latitude": "...",
"Longitude": "...",
"Telefone": "(XX) XXXX-XXXX",
"Fax": "(XX) XXXX-XXXX",
"Contato do grupo": "xxxx@xxxx.xx.com",
"Website": "www.grupodepesquisa.com.br"
}
}
[host]/getPesquisadores/<codigo>
Retorna um Json com uma lista de todos os pesquisadores
{
"Pesquisadores": [
"Nome Pesquisador 1",
"Nome Pesquisador 2",
"..."
]
}
[host]/getEstudantes/<codigo>
Retorna um Json com uma lista de todos os estudantes
{
"Estudantes": [
"Nome Estudante 1",
"Nome Estudante 2",
"..."
]
}
[host]/getTecnicos/<codigo>
Retorna um Json com uma lista de todos os técnicos
{
"Técnicos": [
"Nome Técnico 1",
"Nome Técnico 2",
"..."
]
}
[host]/getLinhas/<codigo>
Retorna um Json com uma lista de Linhas de Pesquisa cadastradas
{
"Linhas de Pesquisa": [
"Linha 1",
"Linha 2",
"..."
]
}
[host]/getParceiros/<codigo>
Retorna um Json com uma lista de todas as Instituições Parceiras cadastradas
{
"Instituições parceiras relatadas pelo grupo": [
"Universidade X",
"Universidade Y",
"..."
]
}